我有一个 AUTO INCREMENT PRIMARY KEY "student_id",在表中插入了一行。它得到 student_id 等于1。然后I deleted this line和inserted new line。新行的 student_id 为2,而不是1。为什么?如何改变它?
AUTO INCREMENT PRIMARY KEY "student_id"
student_id
I deleted this line
inserted new line
我试过了:
ALTER TABLE students DROP PRIMARY KEY, ADD PRIMARY KEY (student_id);
然而并没有结果。
这就是自动递增键的工作原理。每个自动增量操作都保证返回一个新的唯一值。数据库服务器中没有内置逻辑来尝试确定某些值是否可用于重用,因为它们的行已被删除。
为什么不?通常这些键值存储在其他表中(实现关系数据库管理系统的关系部分)。如果它们被重用,这些关系就会被破坏。
您可以使用以下命令重置下一个自动增量值
ALTER TABLE table_name AUTO_INCREMENT = value;
但是,如果你这样做,你可能会把事情搞得一团糟。在您获得有关自动递增值的 JOIN 操作的经验之前,不要这样做。