正向工程EER图产生错误1882

问题描述 投票:0回答:1

我看过其他论坛,包括有关此错误的帖子,但似乎无法在我的情况下找到它的原因。数据类型,整理,零填充,非空,无符号和二进制类型都匹配,我仍然无法提出解决方案。我收到的输出如下:

错误:ERROR: Error 1822: Failed to add the foreign key constraint. Missing index for constraint 'fk_projects_has_equipment_equipment1' in the referenced table 'equipment'

我也包括了设备表。任何帮助是极大的赞赏。

码:

  CREATE TABLE IF NOT EXISTS `Group_13_Schema`.`project_equipment` (
      `project_id` INT NOT NULL,
      `vendor_id` INT NOT NULL,
      `department_id` INT NOT NULL,
      `equipment_id` INT NOT NULL,
      `equipment_cost` DECIMAL(10,2) NULL,
      PRIMARY KEY (`department_id`, `equipment_id`, `project_id`, `vendor_id`),
      INDEX `fk_projects_has_equipment_equipment1_idx` (`vendor_id` ASC, `department_id` ASC, `equipment_id` ASC) VISIBLE,
      INDEX `fk_projects_has_equipment_projects1_idx` (`project_id` ASC) VISIBLE,
      CONSTRAINT `fk_projects_has_equipment_projects1`
        FOREIGN KEY (`project_id`)
        REFERENCES `Group_13_Schema`.`projects` (`project_id`)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION,
      CONSTRAINT `fk_projects_has_equipment_equipment1`
        FOREIGN KEY (`vendor_id` , `department_id` , `equipment_id`)
        REFERENCES `Group_13_Schema`.`equipment` (`vendor_id` , `department_id` , `equipment_id`)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
    ENGINE = InnoDB



CREATE TABLE IF NOT EXISTS `Group_13_Schema`.`equipment` (
  `equipment_id` INT NOT NULL,
  `vendor_id` INT NOT NULL,
  `department_id` INT NOT NULL,
  `equipment_name` VARCHAR(45) NULL,
  `equipment_cost` DECIMAL(10,2) NULL,
  PRIMARY KEY (`equipment_id`, `vendor_id`, `department_id`),
  INDEX `fk_departments_has_vendors_vendors1_idx` (`vendor_id` ASC) VISIBLE,
  INDEX `fk_departments_has_vendors_departments1_idx` (`department_id` ASC) VISIBLE,
  CONSTRAINT `fk_departments_has_vendors_departments1`
    FOREIGN KEY (`department_id`)
    REFERENCES `Group_13_Schema`.`departments` (`department_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_departments_has_vendors_vendors1`
    FOREIGN KEY (`vendor_id`)
    REFERENCES `Group_13_Schema`.`vendors` (`vendor_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_projects_has_equipment_equipment1`
    FOREIGN KEY (`equipment_id`)
    REFERENCES `Group_13_Schema`.`equipment` (`vendor_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
foreign-keys constraints mysql-workbench
1个回答
0
投票

尝试为3个FK列创建索引。我希望PK已经符合条件,但最后2列的顺序与FK约束中列出的顺序相反。

© www.soinside.com 2019 - 2024. All rights reserved.