嗯,我一直在看错误1005的问题,但我没有看到我的错误,在这些问题解决的问题。这段代码是由Linux下的MySQL工作台生成的。谁有敏锐的眼睛能发现这个错误?它在尝试创建AB_test_questions时发生。
对于上下文,表ABs引用A/B检验的主题,AB_test_questions表示比较两个主题的问题(因此有两个外键引用ABs表)。

CREATE TABLE IF NOT EXISTS `db`.`ABs` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
`text` VARCHAR(255) NOT NULL,
`image` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COMMENT = 'represents the subject of an AB test';
CREATE TABLE IF NOT EXISTS `db`.`AB_test_questions` (
`id` INT NOT NULL AUTO_INCREMENT,
`AB1` INT NOT NULL,
`AB2` INT NOT NULL,
PRIMARY KEY (`id`),
INDEX `AB1_idx` (`AB1` ASC),
INDEX `AB2_idx` (`AB2` ASC),
CONSTRAINT `fk_AB_test_questions_ABs_id1`
FOREIGN KEY (`AB1`)
REFERENCES `db`.`ABs` (`id`)
ON DELETE SET NULL
ON UPDATE CASCADE,
CONSTRAINT `fk_AB_test_questions_ABs_id2`
FOREIGN KEY (`AB2`)
REFERENCES `db`.`ABs` (`id`)
ON DELETE SET NULL
ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COMMENT = 'represents an AB test question';发布于 2015-03-16 11:15:22
您已经在DELETE SET NULL上指定了一个级联,但是相关的键字段被设置为NULL。您可以通过更改级联或将字段设置为允许空值来修复此问题。
https://dba.stackexchange.com/questions/95356
复制相似问题