让我们这样想,假设我在 MYSQL 中有一个名为“names”的表,如下所示:
id| name
1 | Bob
2 | Sally
3 | Anne
其中“id”是表的唯一标识符,并且随着每添加一行而自动递增。
假设我以某种方式设法用一个完全不符合顺序的 id 抛出一行,如下所示:
id| name
1 | Bob
2 | Sally
3 | Anne
20| John
随机行之后的行会从新的 id 20 继续吗? (例如,添加的下一行的 ID 为 21),还是它们仍会从 ID 3 继续? (例如,添加的下一行的 ID 为 4)
以前在SQl中出现过这种情况吗?
最佳答案
他们将继续使用 21,禁止重复。否则,当您到达 19 并且下一个插入的行应该变成 20 时,您就会遇到问题,而这已经存在了。
顺便说一句,插入这样一行并不复杂。只需在 INSERT
上提供特定值,而不是遗漏自动增量列或交出 NULL
。
除非您手动设置 next-autoincrement 值,否则 MySQL 会尽一切努力确保不会遇到冲突。因此,如果您插入一个大值,它会将 this+1 保存为下一个自动增量值。
关于mysql - SQL:假设,如果将不合适的数字添加到唯一标识符列,会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22053310/