首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >还有一个“错误1005不能创建表”的问题

问还有一个“错误1005不能创建表”的问题
EN

Database Administration用户
提问于 2015-03-16 10:22:08
回答 1查看 68关注 0票数 0

嗯,我一直在看错误1005的问题,但我没有看到我的错误,在这些问题解决的问题。这段代码是由Linux下的MySQL工作台生成的。谁有敏锐的眼睛能发现这个错误?它在尝试创建AB_test_questions时发生。

对于上下文,表ABs引用A/B检验的主题,AB_test_questions表示比较两个主题的问题(因此有两个外键引用ABs表)。

代码语言:javascript
复制
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';
EN

回答 1

Database Administration用户

回答已采纳

发布于 2015-03-16 11:15:22

您已经在DELETE SET NULL上指定了一个级联,但是相关的键字段被设置为NULL。您可以通过更改级联或将字段设置为允许空值来修复此问题。

参考文献:- http://verysimple.com/2006/10/22/mysql-error-number-1005-cant-create-table-mydbsql-328_45 150 errno-150/

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/95356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档