0

我有一个关于数据库的问题。假设我有 id 列,它是主键。和4行。一旦我删除第 0 行,第一行必须成为该表中的第 0 行。一旦你将表 ID 设置为 auto_increment,它会这样做吗?此致

4

1 回答 1

2

简而言之,不。

也就是说,一旦为自动增量列分配了一个值,它就会永远保持分配的值。

想想看;假设您有一个表,其中包含一百万行。如果您删除 ID 为 0 的行,然后想要重新编号剩余的行,您不仅必须更新剩余的百万行中的每一行,还必须将这些更新级联到其他表中的引用外键。您刚刚要求重写数据库的很大一部分。这对并发性、日志文件使用以及其他几乎所有事情都是不利的(每个提到仍然存在行的 ID 号的报告都已过时)。想想如果您的银行帐号在其他人关闭他们的帐户时发生变化,您会发生什么!

填补你似乎在询问的空白通常是没有必要的。

于 2013-02-04T16:21:36.827 回答