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

為什麼在建立 MySQL 表時出現重複鍵錯誤?

Barbara Streisand
Barbara Streisand原創
2024-11-29 02:14:08481瀏覽

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

CREATE TABLE 指令中出現重複鍵錯誤

問題 1。錯誤1022:無法寫入;表中存在重複鍵

由於重複鍵,我在執行 CREATE TABLE 命令時遇到錯誤 1022。我已查看該查詢,但無法確定原因。

查詢:

CREATE TABLE IF NOT EXISTS  `apptwo`.`usercircle` (
 `idUserCircle` MEDIUMINT NOT NULL ,
 `userId` MEDIUMINT NULL ,
 `circleId` MEDIUMINT NULL ,
 `authUser` BINARY NULL ,
 `authOwner` BINARY NULL ,
 `startDate` DATETIME NULL ,
 `endDate` DATETIME NULL ,
 PRIMARY KEY (  `idUserCircle` ) ,
 INDEX  `iduser_idx` (  `userId` ASC ) ,
 INDEX  `idcategory_idx` (  `circleId` ASC ) ,
 CONSTRAINT  `iduser` FOREIGN KEY (  `userId` ) REFERENCES  `apptwo`.`user` (
`idUser`
) ON DELETE NO ACTION ON UPDATE NO ACTION ,
 CONSTRAINT  `idcategory` FOREIGN KEY (  `circleId` ) REFERENCES  `apptwo`.`circle` (
`idCircle`
) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE = INNODB;

Q2。重複發生在哪裡?

A1.約束名稱衝突

此錯誤可能源自重複的約束名稱。約束在整個資料庫中必須是唯一的,而不僅僅是在特定表內。

在這種情況下,資料庫中似乎已經存在名為 iduser 和/或 idcategory 的限制。重新命名這些約束將解決問題。

Q3。如何識別現有約束?

A2。尋找約束的查詢

要確定目前使用約束的位置,請執行以下查詢:

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

此查詢將傳回應用程式約束的架構和表名稱.

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

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