首頁 >資料庫 >mysql教程 >如何解決 MySQL「無法寫入;表中的重複鍵」錯誤 (1022)?

如何解決 MySQL「無法寫入;表中的重複鍵」錯誤 (1022)?

Susan Sarandon
Susan Sarandon原創
2024-12-01 09:57:10225瀏覽

How to Resolve the MySQL

解決「無法寫入;表中的重複鍵」錯誤

由於以下原因在執行CREATE TABLE 命令時遇到1022 錯誤重複的按鍵,有必要檢查查詢並識別其來源重複。

在提供的範例中,錯誤訊息指示與名為「iduser」和「idcategory」的約束相關的問題。最有可能的是,資料庫中已經定義了這些名稱的約束。

解決重複約束

要解決此問題,您需要重新命名重複約束。約束在整個資料庫中必須是唯一的,不限於正在建立或變更的特定表。

尋找現有約束

找出重複約束目前所在的位置使用,執行以下查詢:

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

查詢將會傳回每個約束所在的表模式和表名用過的。一旦確定了衝突的約束,就可以使用 ALTER TABLE 指令重命名它們。例如:

ALTER TABLE `apptwo`.`usercircle` DROP CONSTRAINT `iduser`;
ALTER TABLE `apptwo`.`usercircle` ADD CONSTRAINT `user_constraint` FOREIGN KEY (`userId`) REFERENCES `apptwo`.`user` (`idUser`) ON DELETE NO ACTION ON UPDATE NO ACTION;

以上是如何解決 MySQL「無法寫入;表中的重複鍵」錯誤 (1022)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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