我有一个带ID的表,这个ID是自动增量和主键,第一次插入到该表时,ID从0开始,但是在我从该表中删除所有值并再次插入之后, ID不是从0开始,而是从ID的最后一个值开始,出了什么问题? 我可以将值重置为0吗?
答案 0 :(得分:16)
您可以使用
截断表格TRUNCATE `table`
截断将删除表格中的所有数据。请注意,使用TRUNCATE
也不会触发任何DELETE触发器,例如DELETE
。
或者您可以使用
重置计数ALTER TABLE `table` AUTO_INCREMENT = 1
然而,这是预期的行为。除非桌子真的是空的,否则不要做后者。
答案 1 :(得分:5)
要插入值为0的主键,请先执行以下请求:
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
答案 2 :(得分:3)
删除表中的所有元素不会影响主键。主键仍然会从其最后一个值自动增加。
如果要重置主键,可以尝试截断表:
TRUNCATE TABLE yourtable;
这清除了yourtable中的所有元素。它是否重置主键取决于您的数据库。使用Mysql它应该工作,因为Mysql删除并重新创建TRUNCATE上的表。
答案 3 :(得分:1)
您必须使用TRUNCATE语句从1重新启动auto_increment。 这是避免刹车的正常行为。