我有一个表,其中第一列是像这样定义的自动递增 id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT
现在我想删除一些包含NULL的行,之后id不一致,有什么办法可以让它们自动调整?就像现在我删除了第一行,所以 id 在我的表中从 2 开始,我还删除了中间的一些行。
最佳答案
它是主键,不应该遵循您认为的逻辑。如果您有顺序值 1、2、3、4、5,然后删除 ID = 3 的值,则您不能重复使用值 3。
后果很严重,只是不要试图强制 MySQL 重用您已删除的值。
如果您出于“美观”显示的目的需要某种排序,请不要依赖 id
列的值。它是一个主键,它的存在只是为了让每一行都可以唯一标识,从而使其实际值在外界看来毫无意义。
我知道人们通常希望他们的数字是连续的,而且差距看起来很难看,但如果您需要实现它,请使用您将手动更新的其他一些列来实现它。
请记住,永远不要自己触摸主键。
关于mysql - Mysql中的列id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8325853/