【问题标题】:MYSQL ERROR: Error 1215: Cannot add foreign key constraintMYSQL 错误:错误 1215:无法添加外键约束
【发布时间】:2014-03-25 05:44:55
【问题描述】:

我正在尝试将我的 ERD 转发到工作台 6.0 中的方案中,但我收到了这个错误。我检查了所有列类型,它们是相同的。我在这里查看了类似的问题,但仍然找不到答案。这是错误日志:

xecuting SQL script in server

ERROR: Error 1215: Cannot add foreign key constraint







-- -----------------------------------------------------

-- Table `proj`.`employee`

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `proj`.`employee` (

  `employee_id` INT NOT NULL,

  `position_id` INT NOT NULL,

  PRIMARY KEY (`employee_id`),

  CONSTRAINT `fk_employee_employee_history1`

    FOREIGN KEY (`employee_id`)

    REFERENCES `proj`.`employee_history` (`employee_id`)

    ON DELETE NO ACTION

    ON UPDATE NO ACTION,

  CONSTRAINT `fk_employee_equipment_rentals1`

    FOREIGN KEY (`employee_id`)

    REFERENCES `proj`.`equipment_rentals` (`handling_employee_id`)

    ON DELETE NO ACTION

    ON UPDATE NO ACTION,

  CONSTRAINT `fk_employee_scheduled_trips1`

    FOREIGN KEY (`employee_id`)

    REFERENCES `proj`.`scheduled_trips` (`leader`)

    ON DELETE NO ACTION

    ON UPDATE NO ACTION,

  CONSTRAINT `fk_employee_scheduled_trips2`

    FOREIGN KEY (`employee_id`)

    REFERENCES `proj`.`scheduled_trips` (`assistant`)

    ON DELETE NO ACTION

    ON UPDATE NO ACTION)

ENGINE = InnoDB



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



Fetching back view definitions in final form.

Nothing to fetch

【问题讨论】:

  • 不仅架构必须正确,任何现有数据也必须通过约束。如果表中有任何数据适用于新约束,则必须满足约束条件。我敢打赌你有一些孤儿数据。

标签: mysql foreign-keys mysql-workbench workbench


【解决方案1】:

原来我的外键约束都搞砸了。我的关系倒退了。我没有让外键引用主键,而是让主键成为引用非唯一列的外键。我扭转了这一点,它奏效了。

【讨论】:

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