mysql ID自动递增不';t从0开始

mysql ID自动递增不';t从0开始,mysql,database,auto-increment,Mysql,Database,Auto Increment,我有一个ID为的表,这个ID是自动递增的主键,我第一次插入该表时,ID从0开始,但在我删除该表中的所有值并再次插入该表后,ID不是从0开始,而是从ID的最后一个值开始,请问出了什么问题? 我可以将该值重置为0吗?您必须使用TRUNCATE语句从1重新启动自动增量。 避免刹车是正常的行为。您可以使用 TRUNCATE `table` Truncate将删除表中的所有数据。请注意,使用TRUNCATE也不会触发任何删除触发器,如DELETE 或者您可以使用重置计数 ALTER TABLE `tab

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

您必须使用TRUNCATE语句从1重新启动自动增量。
避免刹车是正常的行为。

您可以使用

TRUNCATE `table`
Truncate将删除表中的所有数据。请注意,使用
TRUNCATE
也不会触发任何删除触发器,如
DELETE

或者您可以使用重置计数

ALTER TABLE `table` AUTO_INCREMENT = 1

然而,这是预期的行为。除非表确实为空,否则不要执行后一种操作。

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

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

TRUNCATE TABLE yourtable;

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

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

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";

没什么不对的。这是预期的行为。你的汽车里程表每次开车时都从0开始吗?那么我能做什么呢,我在我的桌子上插入了300多次,当我看到老师的作业时,向他展示客户从301开始不是件好事,对吧?如果你从脚本中插入,你可以放下桌子,然后重新运行脚本。如果插入是手动的,您不会想重新插入,是吗?。无论如何,您删除了300个临时/测试客户端。如果我是你的老师,这不会是一个问题。截断表你的表名你的意思是我的数据库将被删除吗?或者表的值将被删除?使用TRUNCATE语句将删除表内容。本·斯文伯恩给出了正确的答案。