如何重置MySql表中的自动递增数字/列
item_category_id列是mysql表中的自动增量值 我需要删除所有值&下一次插入应从1开始。如果我删除所有值并尝试插入一个新行,那么它将从30和40开始如何重置MySql表中的自动递增数字/列,mysql,sql,Mysql,Sql,item_category_id列是mysql表中的自动增量值 我需要删除所有值&下一次插入应从1开始。如果我删除所有值并尝试插入一个新行,那么它将从30和40开始 item_category_id item_category_name 1 qqq 25 ccc 32 vvv 29 bb 4
item_category_id item_category_name
1 qqq
25 ccc
32 vvv
29 bb
4 bbb
31 hhh
34 mmm
33 rrr
如果使用Truncate,则不使用Delete,因为Truncate将删除数据并重置自动增量
TRUNCATE TABLE TABLENAME
如果您使用PHPmyAdmin来管理数据库,您可以 选择您的表格 导航到更多 然后,导航到操作 在这里,您将找到一个可以更改的自动增量字段: 自动增量值>
我认为这样做可以除非您有外键,在这种情况下,您需要添加SET foreign_KEY_CHECKS=0;在截断和设置外键之前,检查=1;我同意你的回答,但不同意最后一句话。假设您有1000条记录,update语句将从技术上将id值重置为1到1000。在此之后,将自动增量值设置回1是没有意义的,它应该是1001。这有意义吗?alter应该是这样的:alter TABLE your_TABLE AUTO_INCREMENT=SELECT MAXid FROM your_TABLE+1;
TRUNCATE TABLE TABLENAME
ALTER TABLE `users` AUTO_INCREMENT = 1;
SET @num := 0;
UPDATE your_table SET id = @num := (@num+1);
ALTER TABLE your_table AUTO_INCREMENT =1;