關於重置MySQL的AUTO_INCREMENT列很少有問題。MySQL的AUTO_INCREMENT列如何重置
首先不刪除/創建表或通過TRUNCATE TABLE刪除行(請參閱該代碼的頁腳) - 這是正確的方法嗎?
ALTER TABLE [insert_TABLE_name] AUTO_INCREMENT = 1
接下來,值設置爲0
或1
- 爲什麼?
獎金,任何額外的建議。
關於重置MySQL的AUTO_INCREMENT列很少有問題。MySQL的AUTO_INCREMENT列如何重置
首先不刪除/創建表或通過TRUNCATE TABLE刪除行(請參閱該代碼的頁腳) - 這是正確的方法嗎?
ALTER TABLE [insert_TABLE_name] AUTO_INCREMENT = 1
接下來,值設置爲0
或1
- 爲什麼?
獎金,任何額外的建議。
它被設置爲您在alter table查詢中使用的任何值,在您的情況下爲1
。但是,由於您並未刪除行,因此您現在可能會自行設置主鍵違規行爲,因爲您的下一個插入的行將嘗試使用該行,並與具有相同鍵的先前創建的行發生衝突。
您不能將計數器重置爲小於或等於任何已使用的值。
您試圖將auto_increment計數器重置爲1,但它已經高於該值,並且由於您無法將其重置爲小於已使用的任何值的值,因此不起作用。
它被設置爲您在alter table查詢中使用的任何內容,在您的情況下爲'1'。但是,由於您並未刪除行,因此您現在可能會自行設置主鍵衝突,因爲您的下一個插入的行將嘗試使用該「1」並與具有相同鍵的先前創建的行發生衝突。 – 2011-02-23 15:08:22
@Marc B:+1如果「TRUNCATE TABLE [insert_TABLE_name];」是方式,作爲答案,與信息爲什麼「ALTER TABLE [insert_TABLE_name] AUTO_INCREMENT = 1;」將工作。謝謝! – blunders 2011-02-23 15:13:40