在MySQL中重新排列主键

Naveen S

在MySQL中从表中删除一些行后,如何重新排列主键列值?

敌人的例子;一个具有4行数据,主键值为1,2,3,4的表。删除第二行和第三行时,第四行的键值将更改为2。

请帮助我找到解决方案。

阿尔玛·杜(Alma Do)

为什么要这样?不需要重新排列密钥,因为它只是数字和记录的标识符。它没有实际意义-因此让DBMS处理。这是一个非常常见的错误-尝试扮演DBMS角色。

但是,对于常见情况,我会回答您的问题。在MySQL中,您可以使用以下方式重新排列列:

update t cross join (select @cur:=0) as init set t.col=@cur:=@cur+1

-但是,此列不能与UNIQUE(因此也有主键)限制下的列一起使用,因为在更新过程中,您可能会得到重复的记录。您应该先删除限制,然后再执行此操作(并在更新后再次创建)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章