首頁 >資料庫 >mysql教程 >為什麼建立表格時出現 MySQL 錯誤 1022(重複鍵)?

為什麼建立表格時出現 MySQL 錯誤 1022(重複鍵)?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-30 17:00:12308瀏覽

Why Am I Getting a MySQL Error 1022 (Duplicate Key) When Creating a Table?

不能寫入;建立表時出現重複鍵

由於主鍵條目重複而嘗試建立新表時遇到錯誤 1022。即使在檢查了查詢之後,您也可能很難識別重複的來源。讓我們進一步研究一下。

您提供的查詢包含一個名為「iduser」的約束作為「userId」列的外鍵。此外,它還為「circleId」欄位指定名為「idcategory」的約束。這些約束名稱似乎是問題的根源。

約束和重複

MySQL 中的約束在整個資料庫中必須是唯一的,而不僅僅是針對特定表正在建立或修改。因此,您的資料庫中可能已經有其他使用「iduser」或「idcategory」約束名稱的表或索引。此衝突會導致重複鍵錯誤。

辨識重複約束

要確定目前使用這些限制的位置,請執行以下查詢:

SELECT `TABLE_SCHEMA`, `TABLE_NAME`
FROM `information_schema`.`KEY_COLUMN_USAGE`
WHERE `CONSTRAINT_NAME` IN ('iduser', 'idcategory');

此查詢將顯示「iduser」和「idcategory」約束所在的表和模式

解決方案

要解決該錯誤,您需要重新命名重複的約束。考慮使用特定於目前資料表的唯一名稱,例如「userId」列上的外鍵約束的「fk_user」。重新命名約束並更新查詢後,您應該能夠成功建立表,而無需重複密鑰錯誤。

以上是為什麼建立表格時出現 MySQL 錯誤 1022(重複鍵)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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