MySQL表中的重复键

时间:2015-03-20 16:31:41

标签: mysql sql google-cloud-sql

我有以下SQL查询的错误,我不知道如何解决它。错误消息是:

  

“错误代码:1022。无法写入;表中的重复键   的 't_course_catalog'

以下是查询:

CREATE TABLE IF NOT EXISTS `TrainingPlan`.`T_Course_Catalog` (
 `CC_ID` INT NOT NULL AUTO_INCREMENT,
 `ID_Catalog_Level` INT NOT NULL,
 `Catalog_Name` VARCHAR(50) NOT NULL,
 `ID_Delivery_Method` INT NOT NULL,
 `Created_Date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
 `Created_By` VARCHAR(8) NOT NULL,
 `Modified_Date` TIMESTAMP NULL,
 `Modified_By` VARCHAR(8) NULL,
 `Deleted` TINYINT(1) NOT NULL DEFAULT 0,
 PRIMARY KEY (`CC_ID`),
 INDEX `fk_cl_idx` (`ID_Catalog_Level` ASC),
 INDEX `fk_dm_idx` (`ID_Delivery_Method` ASC),
 CONSTRAINT `fk_cl`
   FOREIGN KEY (`ID_Catalog_Level`)
   REFERENCES `TrainingPlan`.`T_Catalog_Level` (`CL_ID`)
   ON DELETE NO ACTION
   ON UPDATE NO ACTION,
 CONSTRAINT `fk_dm`
   FOREIGN KEY (`ID_Delivery_Method`)
   REFERENCES `TrainingPlan`.`T_Delivery_Method` (`DM_ID`)
   ON DELETE NO ACTION
   ON UPDATE NO ACTION)
ENGINE = InnoDB

引用外键应该没问题,因为引用表存在。

1 个答案:

答案 0 :(得分:1)

尝试重命名约束,它们可能在数据库中的某处重复。

示例:

fk_cl becomes fk_course_catalog_cl
fk_dm become  fk_course_catalog_dm

或者你想要它的替代名称。