簡體   English   中英

MySQL 5.1.42 alter table auto_increment = 0無效,截斷有效

[英]Mysql 5.1.42 alter table auto_increment = 0 doesn't work, truncate does

對於我的自動驗收測試,我希望插入以id = 1開頭。 我在一台PC(XP 32位,mysql 5.1.something)上實現了此目的(從表中刪除所有行之后),“更改表tableName auto_increment = 0”。

我現在正在設置一台新的PC(Windows 7 64bit,mysql 5.1.42),該命令似乎無效。 我可以在information_schema.tables表中看到,auto_increment值未更改回0 ---一直在增加。 如果嘗試直接更改該表中的值,則會被告知拒絕對“ root” @“ localhost”的訪問。 這是否可以暗示我的問題?

其他stackoverflow人士建議“從tableName截斷”是一個不錯的選擇。 我很高興地報告這可行。 但是有人知道為什么“ alter table”命令不會重置auto_increment嗎?

謝謝!

不確定為什么它可以在一台服務器上運行,而不能在另一台服務器上運行,但是MySQL手冊指出 (引用,重點是我的)

要更改用於新行的AUTO_INCREMENT計數器的值,請執行以下操作:

 ALTER TABLE t2 AUTO_INCREMENT = value; 

您不能將計數器重置為小於或等於已使用的值
對於MyISAM,如果該值小於或等於AUTO_INCREMENT列中當前的最大值,則該值將重置為當前的最大值加1。
對於InnoDB,如果該值小於該列中的當前最大值,則不會發生錯誤,並且當前序列值不會更改。

可能是問題的原因:您試圖將auto_increment計數器重新設置為0,但是它已經高於該值,並且由於您無法將其重置為小於已使用的任何值的值,因此它不會不行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM