我在尝试制作“攻击关系”时遇到错误1005 errno 105表。
' attack_relationship' table有两个外键用作'参数表中的主键:attackedArgumentId
和attackingArgumentId
。
它还引用了来自" critical_question'的复合外键。表(argumentId, critical_question.id)
。
critical_question表中的argumentId从参数表中引用attackedArgumentId
。
如果我删除了'attack_relationship'之间的关系?到' critical_question' &attack;攻击关系'可以创建表而不会出现任何错误。问题是我需要attackedArgumentId
,attackingArgumentId
和criticalQuestionId
作为attack_reltationship表中的主键。
以下是错误和代码的详细信息:
在服务器中执行SQL脚本 错误:错误1005:无法创建表格' argupedia.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个失败
以最终形式获取视图定义。 无需提取
答案 0 :(得分:0)
使用SHOW ENGINE INNODB STATUS
找出约束失败的确切原因