所以我就截斷我的表,但現在我的主鍵不會自動遞增。每次我添加第二個項目表時,它回來與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 –