問題:
為什麼自動增量當唯一欄位插入失敗時,MySQL 中的值會增加存在嗎?
解釋:
InnoDB,MySQL 中的預設引擎,以事務方式運作。因此,當多個會話嘗試同時插入具有自動增量列的表時,可能會出現某些情況:
結果:
當由於違反唯一字段約束而導致插入失敗時,自動增量值仍然會遞增,因為InnoDB 在整個過程中都會維護記憶體中的自動增量計數器伺服器的操作。當伺服器重新啟動時,InnoDB 在第一次插入每個表期間會重設該表的計數器。
緩解:
如果存在 ID 列換行的可能性,請考慮使用 BIGINT 資料類型(8 位元組長)來提供更大範圍的值。
以上是為什麼 MySQL 的自動增量即使在具有唯一約束的失敗插入時也會增量?的詳細內容。更多資訊請關注PHP中文網其他相關文章!