mysql 在有数据的表中直接插入一列 uuid

2022-03-21 16:44:19 +08:00
 amuyue

mysql 中的某个表, 自己把它玩坏了, 该表中是有数据的(而且对自己来说还是比较重要的), 现在是想直接给表插入一列 uuid 作为主键, 该咋整, 大佬们, 我是刚学[捂脸]

1492 次点击
所在节点    程序员
8 条回复
amuyue
2022-03-21 17:21:45 +08:00
没人给回复个吗, 尬
可能是我表述的有问题, 是想在原有数据的基础上增加一列 uuid(顺便把值填上), 原来有 uuid, 只不过被自己给玩没了...
mmdsun
2022-03-21 19:29:58 +08:00
表新建一个列,然后 update 语句更新就行。MySQL 里面有 uuid()的函数。 如果你批量 insert 可能值是一样的就套个 MD5(uuid())。你可以用 Navicat 这种图形页面工具操作,操作完成了还能生成对应的 SQL 。
luckyrayyy
2022-03-21 19:32:41 +08:00
你的需求 alter table 加列就行了,但是不建议用 uuid 做主键
LeeReamond
2022-03-21 19:48:58 +08:00
@luckyrayyy 有什么坑吗
biubiuF
2022-03-21 20:01:17 +08:00
mysql 还是自增主键吧,还有你重新生成 id 之前的关联关系咋办
luckyrayyy
2022-03-21 20:08:57 +08:00
@LeeReamond uuid 完全随机,会有大量的页分裂和碎片,数据量大的时候性能下降很厉害,你可以本地造几百万条试试
thinkershare
2022-03-21 20:37:09 +08:00
@amuyue 如果你使用 UUID 作为主键, 然后需要频繁的查询, 可以使用有序的 UUID 生成器算法, 这种算法可以保证随着时间递增, 从而避免 UUID 默认无须导致的索引更新时候到性能损失, 如果查询非常频繁, 更新很少, 那就无所谓!
amuyue
2022-03-23 08:58:55 +08:00
好的, 感谢各位大佬

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/841894

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX