13

我有一个带有 ID 的表,这个 ID 是自动增量和主键,我第一次插入该表时,ID 从 0 开始,但是在我从该表中删除所有值并再次插入后,ID 不'不是从0开始,而是从ID的最后一个值开始,请问出了什么问题?我可以将值重置为 0 吗?

4

4 回答 4

18

您可以使用截断表

TRUNCATE `table`

截断将删除表中的所有数据。请注意, usingTRUNCATE也不会触发任何 DELETE 触发器,例如DELETE.

或者您可以使用重置计数

ALTER TABLE `table` AUTO_INCREMENT = 1

然而,这是预期的行为。除非桌子真的是空的,否则不要做后者。

于 2012-05-25T11:27:17.133 回答
5

要插入值为 0 的主键,请首先执行以下请求:

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
于 2014-01-07T16:51:46.190 回答
3

删除表中的所有元素不会影响主键。主键仍会从其最后一个值自动递增。

如果要重置主键,可以尝试截断表:

TRUNCATE TABLE yourtable;

这会清除 yourtable 中的所有元素。是否重置主键取决于您的数据库。使用 Mysql 它应该可以工作,因为 Mysql 在 TRUNCATE 上删除并重新创建表。

于 2012-05-25T11:28:48.677 回答
1

您必须使用 TRUNCATE 语句从 1 重新启动 auto_increment。这是避免制动的正常行为。

于 2012-05-25T11:25:01.703 回答