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 好的, 感谢各位大佬
|