所以我就截断我的表,但现在我的主键不会自动递增。每次我添加第二个项目表时,它回来与1062:重复项'0'的关键'主'Mysql的截断表,自动递增不工作
我认为当你截断表时,它会重置自动增量回到1
我搜索周围什么我可以做,但我接触过很多人说刚截断。
我做什么
"TRUNCATE TABLE mytable;"
我一定是做错了什么。
所以我就截断我的表,但现在我的主键不会自动递增。每次我添加第二个项目表时,它回来与1062:重复项'0'的关键'主'Mysql的截断表,自动递增不工作
我认为当你截断表时,它会重置自动增量回到1
我搜索周围什么我可以做,但我接触过很多人说刚截断。
我做什么
"TRUNCATE TABLE mytable;"
我一定是做错了什么。
此错误不影响MySQL 5.0,它是可重复的6.0和5.1.23和5.1BK。
以下是容易得到的和有效的解决方法是在表将被截断之后,以改变AUTOINC值。
重新初始化截断右后AUTOINC值
alter table tablename AUTO_INCREMENT = n;
/*集合n如所期望*/
谢谢,我有一种感觉,它是一个错误,但我不确定 –
从MySQL 5.0.13中,AUTO_INCREMENT计数器复位到零由TRUNCATE TABLE,而不管是否有一个外键约束。
所有你需要做的是:
SET FOREIGN_KEY_CHECKS = 0;
截断你的表,并改回
SET FOREIGN_KEY_CHECKS = 1;
TRUNCATE一旦被激发,表处理程序不记得上次使用的AUTO_INCREMENT值,而是开始从一开始计数。 即使对于MyISAM和InnoDB,这通常也不会重用序列值。
用户这个查询它的工作。
ALTER TABLE table_name
CHANGE table_id
table_id
INT(11)NOT NULL AUTO_INCREMENT
你能提供的'DESCRIBE mytable'输出。 – mellamokb
确保您的主键列仍被定义为auto_increment。 –
参考http://www.softwareprojects.com/resources/programming/t-how-to-fix-mysql-duplicate-entry-for-key-primary-o-1844.html –