2014-03-26 24 views
2

我正在嘗試改變下一個自動增量值對於使用MySQL工作臺的給定表。下一個自動增量值當前設置爲3,並且我正在嘗試將其設置爲2.每當我嘗試應用更改時,工作臺將運行以下代碼。MySQL工作臺 - 改變下一個自動增量值不起作用

ALTER TABLE `mysql_schema`.`mysql_table` 
AUTO_INCREMENT = 2 ; 

但是,運行此代碼後,不會應用更改,並且下一個自動遞增值仍然是三。有什麼問題?爲什麼自動增量值不變?我試圖手動執行代碼,但它也不起作用。

+0

表中的ID的當前值是什麼? –

+0

我懷疑你可以設置自動增量低於現有值。 – Mihai

+0

@MattPileggi我的自動增量值現在只有1.我有1和2,但2行已被刪除。 – DavidB

回答

1

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

MySQL official alter doc

6

我知道這個答案是在最初的請求後很長一段時間,但它可能會幫助有同樣問題的人。

因此,您有兩行,刪除其中一個,下一個增量值爲3.要將此'3'更改爲'2'並允許未來增量值從'2'而不是'3'流動,請嘗試以下操作。

從「架構」列(左):

  • 在表名上單擊右鍵。
  • 選擇'Alter Table'(或按'spanner'圖標)。
  • 向下看有「應用」和「還原」按鈕的「灰色區域」
  • 在此「灰色區域」的左側有6個選項卡。
  • 其中一個選項卡是「選項」選項卡 - 選擇選項選項卡。
  • 在「常規選項」部分是「自動增量」框
  • 在「自動增量」框中鍵入「2」並按下「應用」按鈕。
  • 在結果框中,按'應用',然後'完成'按鈕。
  • 返回到您的表格並添加一個新行並按下應用按鈕。
  • 增量列的值現在爲'2'。

我希望這對你有用。