所以我只是截断了我的表,但现在我的主键不会自动增加。每次我在表格中添加第二项时,都会返回1062:重复条目'0'表示关键'PRIMARY'
我想当你截断一个表时,它只会将自动增量重置为1.
我搜索我能做什么,但我遇到很多人说只是截断。
我做了什么
"TRUNCATE TABLE mytable;"
我一定做错了。
答案 0 :(得分:9)
此错误不会影响Mysql 5.0,它在6.0和5.1.23以及5.1BK上可重复。
以下是现成的,有效的解决方法是在截断表后更改autoinc值。
截断后立即重新初始化autoinc值
alter table tablename AUTO_INCREMENT = n;
/ *根据需要设置n * /
答案 1 :(得分:0)
从MySQL 5.0.13开始,无论是否存在外键约束,AUTO_INCREMENT计数器都会被TRUNCATE TABLE重置为零。
您需要做的就是:
SET FOREIGN_KEY_CHECKS = 0;
截断表并将其更改回
SET FOREIGN_KEY_CHECKS = 1;
触发TRUNCATE后,表处理程序不记得上次使用的AUTO_INCREMENT值,但从头开始计数。 即使对于通常不重用序列值的MyISAM和InnoDB也是如此。
答案 2 :(得分:0)
使用此查询它将起作用。
ALTER TABLE table_name
CHANGE table_id
table_id
INT(11)NOT NULL AUTO_INCREMENT