在尝试创建"attach_relationship"表时,出现错误1005(错误号105)。"attach_relationship"表有两个外键用作"argument"表中的主键:attackedArgumentId
和attackingArgumentId
。
它还引用了"critical_question"表(argumentId, critical_question.id)
中的复合外键。
critical_question表中的argumentId引用了参数表中的attackedArgumentId
。
如果我要删除"attach_relationship"与"critical_question"之间的关系,则可以创建"attach_prelationship"表,而不会出现任何错误。问题是我需要attackedArgumentId
、attackingArgumentId
和criticalQuestionId
作为attach_retationship表中的主键。
以下是错误和代码的详细信息:
在服务器中执行SQL脚本错误:错误1005:无法创建表"argubedia.attack_relationship"(错误号:150)
SQL Code:
CREATE TABLE IF NOT EXISTS `argupedia`.`attack_relationship` (
`attackedArgumentId` BIGINT ZEROFILL NOT NULL,
`attackingArgumentId` BIGINT ZEROFILL NOT NULL,
`criticalQuestionId` INT NOT NULL,
`userDefined` TINYINT(1) NOT NULL DEFAULT 0,
INDEX `fk_attack_relationship_argument1_idx` (`attackedArgumentId` ASC),
INDEX `fk_attack_relationship_argument2_idx` (`attackingArgumentId` ASC),
INDEX `fk_attack_relationship_critical_question1_idx` (`attackedArgumentId` ASC, `criticalQuestionId` ASC),
PRIMARY KEY (`attackedArgumentId`, `attackingArgumentId`, `criticalQuestionId`),
CONSTRAINT `fk_attack_relationship_argument1`
FOREIGN KEY (`attackedArgumentId`)
REFERENCES `argupedia`.`argument` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `fk_attack_relationship_argument2`
FOREIGN KEY (`attackingArgumentId`)
REFERENCES `argupedia`.`argument` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `fk_attack_relationship_critical_question1`
FOREIGN KEY (`criticalQuestionId` , `attackedArgumentId`)
REFERENCES `argupedia`.`critical_question` (`id` , `argumentId`)
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB
SQL脚本执行完成:语句:10个成功,1个失败
正在以最终形式取回视图定义。没有要获取的东西
使用SHOW ENGINE INNODB STATUS
找出约束未通过的确切原因