首頁  >  文章  >  資料庫  >  為什麼我的 InnoDB 自動遞增計數器儘管有重複的按鍵仍不斷遞增?

為什麼我的 InnoDB 自動遞增計數器儘管有重複的按鍵仍不斷遞增?

Barbara Streisand
Barbara Streisand原創
2024-11-13 11:26:02384瀏覽

Why Does My InnoDB Auto-Increment Counter Keep Incrementing Despite Duplicate Keys?

InnoDB 重複鍵自增增量問題

在主鍵設定為自增的InnoDB 資料庫表中,它是觀察到即使偵測到重複鍵,自動遞增計數器也會繼續遞增。此行為會導致 ID 不連續,如提供的範例所示。若要解決此問題,請考慮實作下列解決方案:

修改 MySQL 設定

透過將 innodb_autoinc_lock_mode 設定選項設為「0”,可以切換到傳統的自增鎖模式。此模式可確保所有 INSERT 語句都會將連續的值指派給自動遞增列,即使在嘗試插入重複鍵時也是如此。

SET GLOBAL innodb_autoinc_lock_mode = 0;

需要注意的是,連續任何應用程式邏輯都不應依賴 ID。它們的主要目的是為每筆記錄提供唯一的識別碼。雖然連續的 ID 可能在美觀上令人愉悅,但它們不會提供任何實際好處,並且可能會導致分散式系統出現問題。

以上是為什麼我的 InnoDB 自動遞增計數器儘管有重複的按鍵仍不斷遞增?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn