解決「無法寫入;表中的重複鍵」錯誤
由於以下原因在執行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中文網其他相關文章!