2011-02-23 29 views
1

關於重置MySQL的AUTO_INCREMENT列很少有問題。MySQL的AUTO_INCREMENT列如何重置

首先不刪除/創建表或通過TRUNCATE TABLE刪除行(請參閱該代碼的頁腳) - 這是正確的方法嗎?

ALTER TABLE [insert_TABLE_name] AUTO_INCREMENT = 1 

接下來,值設置爲01 - 爲什麼?

獎金,任何額外的建議。

+1

它被設置爲您在alter table查詢中使用的任何內容,在您的情況下爲'1'。但是,由於您並未刪除行,因此您現在可能會自行設置主鍵衝突,因爲您的下一個插入的行將嘗試使用該「1」並與具有相同鍵的先前創建的行發生衝突。 – 2011-02-23 15:08:22

+0

@Marc B:+1如果「TRUNCATE TABLE [insert_TABLE_name];」是方式,作爲答案,與信息爲什麼「ALTER TABLE [insert_TABLE_name] AUTO_INCREMENT = 1;」將工作。謝謝! – blunders 2011-02-23 15:13:40

回答

3

它被設置爲您在alter table查詢中使用的任何值,在您的情況下爲1。但是,由於您並未刪除行,因此您現在可能會自行設置主鍵違規行爲,因爲您的下一個插入的行將嘗試使用該行,並與具有相同鍵的先前創建的行發生衝突。

1

您不能將計數器重置爲小於或等於任何已使用的值。

您試圖將auto_increment計數器重置爲1,但它已經高於該值,並且由於您無法將其重置爲小於已使用的任何值的值,因此不起作用。