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