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

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

Barbara Streisand
發布: 2024-11-29 02:14:08
原創
449 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板