一尘不染

SQL 保存已删除行的 PRIMARY KEY

sql

我有一个 AUTO INCREMENT PRIMARY KEY "student_id",在表中插入了一行。它得到 student_id 等于1。然后I deleted this lineinserted new line。新行的 student_id 为2,而不是1。为什么?如何改变它?

我试过了:

ALTER TABLE students DROP PRIMARY KEY, ADD PRIMARY KEY (student_id);

然而并没有结果。


阅读 143

收藏
2021-05-30

共1个答案

一尘不染

这就是自动递增键的工作原理。每个自动增量操作都保证返回一个新的唯一值。数据库服务器中没有内置逻辑来尝试确定某些值是否可用于重用,因为它们的行已被删除。

为什么不?通常这些键值存储在其他表中(实现关系数据库管理系统的关系部分)。如果它们被重用,这些关系就会被破坏。

您可以使用以下命令重置下一个自动增量值

ALTER TABLE table_name AUTO_INCREMENT = value;

但是,如果你这样做,你可能会把事情搞得一团糟。在您获得有关自动递增值的 JOIN 操作的经验之前,不要这样做。

2021-05-30