MySQL无法使用外键创建表

0 mysql foreign-keys

CREATE  TABLE `assessmentbookdb`.`MCQs` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `MCQAnswer` VARCHAR(200) NOT NULL ,
  `QuestionID` INT NOT NULL ,
  PRIMARY KEY (`id`) ,
  INDEX `QuestionID` (`QuestionID` ASC) ,
  CONSTRAINT `QuestionID`
    FOREIGN KEY (`QuestionID` )
    REFERENCES `assessmentbookdb`.`Question` (`QuestionID` )
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB;
Run Code Online (Sandbox Code Playgroud)

消息日志:

错误1005:无法创建表'assessmentbookdb.mcqs'(错误号:121)SQL语句:

CREATE  TABLE `assessmentbookdb`.`MCQs` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `MCQAnswer` VARCHAR(200) NOT NULL ,
  `QuestionID` INT NOT NULL ,
  PRIMARY KEY (`id`) ,
  INDEX `QuestionID` (`QuestionID` ASC) ,
  CONSTRAINT `QuestionID`
    FOREIGN KEY (`QuestionID` )
    REFERENCES `assessmentbookdb`.`Question` (`QuestionID` )
    ON DELETE CASCADE
    ON UPDATE CASCADE)
    ENGINE = InnoDB
Run Code Online (Sandbox Code Playgroud)

Tom*_*rdt 6

仔细检查:

  • 钥匙的名字是独一无二的
  • 您耦合的两个键具有完全相同的数据类型(此处INT NOT NULL:),甚至是签名
  • 引用字段实际存在

  • 然而在一个不同的答案中你写"*哦,你有相同的约束名称.*" - 所以你没有检查它. (2认同)