【问题标题】:MYSQL Workbench - ERROR: Error 1215: Cannot add foreign key constraintMYSQL Workbench - 错误:错误 1215:无法添加外键约束
【发布时间】:2016-07-01 21:09:19
【问题描述】:

我正在尝试在 MySQL Workbench 上对数据库进行正向工程,但我不断收到此错误消息。我觉得这很可能是我的人际关系结构的问题,但我找不到差异。

这是架构图的图像。

这是我收到的错误消息:

    Executing SQL script in server
ERROR: Error 1215: Cannot add foreign key constraint
SQL Code:
        -- -----------------------------------------------------
        -- Table `bturpin`.`THREAD`
        -- -----------------------------------------------------
        CREATE TABLE IF NOT EXISTS `bturpin`.`THREAD` (
          `id` INT NOT NULL AUTO_INCREMENT,
          `answer` DOUBLE NULL,
          `comment` VARCHAR(255) NULL,
          `test_subcategory_name` VARCHAR(45) NULL,
          `RATING_id` INT NOT NULL,
          `RATING_INSTRUCTOR_id` VARCHAR(30) NOT NULL,
          `RATING_INSTRUCTOR_LESSON_title` VARCHAR(45) NOT NULL,
          `RATING_INSTRUCTOR_LESSON_COURSE_num` VARCHAR(15) NOT NULL,
          `RATING_RATER_id` VARCHAR(30) NOT NULL,
          PRIMARY KEY (`id`, `RATING_id`, `RATING_INSTRUCTOR_id`, `RATING_INSTRUCTOR_LESSON_title`, `RATING_INSTRUCTOR_LESSON_COURSE_num`, `RATING_RATER_id`),
          INDEX `fk_THREAD_RATING1_idx` (`RATING_id` ASC, `RATING_INSTRUCTOR_id` ASC, `RATING_INSTRUCTOR_LESSON_title` ASC, `RATING_INSTRUCTOR_LESSON_COURSE_num` ASC, `RATING_RATER_id` ASC),
          CONSTRAINT `fk_THREAD_RATING1`
            FOREIGN KEY (`RATING_id` , `RATING_INSTRUCTOR_id` , `RATING_INSTRUCTOR_LESSON_title` , `RATING_INSTRUCTOR_LESSON_COURSE_num` , `RATING_RATER_id`)
            REFERENCES `bturpin`.`RATING` (`id` , `INSTRUCTOR_id` , `INSTRUCTOR_LESSON_title` , `INSTRUCTOR_LESSON_COURSE_num` , `RATER_id`)
            ON DELETE NO ACTION
            ON UPDATE NO ACTION)
        ENGINE = InnoDB

SQL script execution finished: statements: 14 succeeded, 1 failed

Fetching back view definitions in final form.
Nothing to fetch

【问题讨论】:

  • 确保RATING(id , INSTRUCTOR_id , INSTRUCTOR_LESSON_title , INSTRUCTOR_LESSON_COURSE_num , RATER_id) 上有一个复合索引
  • 您只能有一个引用唯一字段的外键。而且我还建议您是否可以尝试使外键和引用键的数据类型和长度相同?

标签: mysql sql mysql-workbench


【解决方案1】:

尝试按此顺序转发:

  1. 在 MySQL WB 中手动创建必须具有外键约束的字段
  2. 将工程师转发到您的数据库
  3. 在 MySQL WB 中手动创建外键约束
  4. 再次成为正向工程师

您也可以考虑只使用整数外键。

这似乎是 MySQL Workbench 问题,非整数键上有外键。

来源:Error 1215: Cannot add foreign key constraint

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 2014-09-15
    • 2013-06-02
    • 2018-04-28
    相关资源
    最近更新 更多