Mysql 错误代码:1022。Can';不写字;表6中的重复键

Mysql 错误代码:1022。Can';不写字;表6中的重复键,mysql,Mysql,首先,我创建了下表,没有任何问题: CREATE TABLE IF NOT EXISTS `forecast`.`forecast_main_2` ( `ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `data_carga` DATE NOT NULL, `mes_ref1` DATE NOT NULL, `mes_ref2` DATE NOT NULL, `mes_ref3` DATE NULL DEFAULT NULL, `tipo` VARCH

首先,我创建了下表,没有任何问题:

CREATE TABLE IF NOT EXISTS `forecast`.`forecast_main_2` (
`ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`data_carga` DATE NOT NULL,
`mes_ref1` DATE NOT NULL,
`mes_ref2` DATE NOT NULL,
`mes_ref3` DATE NULL DEFAULT NULL,
`tipo` VARCHAR(50) NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE INDEX `ID_UNIQUE` (`ID` ASC))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
但当我尝试创建下一个:

CREATE TABLE IF NOT EXISTS `forecast`.`forecast_labs_2` (
`ID_labs` INT(11) UNSIGNED NOT NULL,
`sku` INT(11) NOT NULL,
`prev_m1_labs` DOUBLE NULL DEFAULT NULL,
`prev_m2_labs` DOUBLE NULL DEFAULT NULL,
`prev_m3_labs` DOUBLE NULL DEFAULT NULL,
`forecast_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`ID_labs`, `forecast_id`),
INDEX `forecast_id_UNIQUE` (`ID_labs` ASC),
INDEX `ID_UNIQUE` (`forecast_id` ASC),
CONSTRAINT `ID`
FOREIGN KEY (`forecast_id`)
REFERENCES `forecast`.`forecast_main_2` (`ID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
出现以下错误:“错误代码:1022.无法写入;表'forecast_labs_2'中存在重复键”


我真的看不出重复的钥匙在哪里。有人能帮我吗?

谢谢你,索拉,就是这样。在我没有命名约束之后,它工作得很好。对不起,如果问题很简单,我还是SQL的初学者,但是你帮了我很多忙

谢谢你,索拉尔,正是这样。在我没有命名约束之后,它工作得很好。对不起,如果问题很简单,我还是SQL的初学者,但是你帮了我很多忙

在删除预测模式引用(构建模式)后工作正常。MySQL的哪个版本?您的
约束ID
名称可能已经存在于数据库中。不要给它命名,或者使用比
ID
更通用的名称(通常是:包含表名的名称)。在删除预测模式引用(构建模式)后可以正常工作。MySQL的版本是什么?数据库中可能已经存在您的
约束ID
名称。要么不给它命名,要么是比
ID
更通用的东西(通常是:包含表名的东西)。