【问题标题】:Visual MySQL Workbench Error: 1452 foreign key constraint fails?Visual MySQL Workbench 错误:1452 外键约束失败?
【发布时间】:2013-11-17 01:45:06
【问题描述】:

看了两天,不知道这是什么意思。我知道它的意思是“正如它所说的那样”,但我不知道如何解决它。有人可以通俗地向我解释一下并帮助我吗?

ERROR: Error 1452: Cannot add or update a child row: a foreign key constraint fails 
(`sls11n`.`dependent`, CONSTRAINT `fk_dependent_employee1` FOREIGN KEY (`emp_id`)
 REFERENCES `employee` (`emp_id`) ON DELETE NO ACTION ON UPDATE NO ACTION)



INSERT INTO `sls11n`.`dependent` (`dep_id`, `emp_id`, `dep_ssn`, `dep_fname`, `dep_lname`,
 `dep_street`, `dep_city`, `dep_state`, `dep_zip`, `dep_phone`, `dep_email`, `dep_notes`)
 VALUES (NULL, 13, 123456789, 'Gary', 'Hart', 'West St', 'San Diego', 'CA', '23424', 
'1234567890', 'garyhart@me.com', NULL)

这是我认为相关的脚本:

-- -----------------------------------------------------
-- Table `sls11n`.`employee`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `sls11n`.`employee` ;

SHOW WARNINGS;
CREATE TABLE IF NOT EXISTS `sls11n`.`employee` (
  `emp_id` TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
  `emp_ssn` INT UNSIGNED NOT NULL,
  `emp_fname` VARCHAR(15) NOT NULL,
  `emp_lname` VARCHAR(20) NOT NULL,
  `emp_street` VARCHAR(45) NOT NULL,
  `emp_city` VARCHAR(45) NOT NULL,
  `emp_state` CHAR(2) NOT NULL,
  `emp_zip` CHAR(9) NOT NULL,
  `emp_phone` CHAR(15) NOT NULL,
  `emp_email` VARCHAR(100) NOT NULL,
  `emp_doh` DATE NOT NULL,
  `emp_is_inspect` ENUM('y', 'n') NOT NULL,
  `emp_notes` VARCHAR(250) NULL,
  PRIMARY KEY (`emp_id`))
ENGINE = InnoDB;

SHOW WARNINGS;

-- -----------------------------------------------------
-- Table `sls11n`.`dependent`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `sls11n`.`dependent` ;

SHOW WARNINGS;
CREATE TABLE IF NOT EXISTS `sls11n`.`dependent` (
  `dep_id` TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
  `emp_id` TINYINT UNSIGNED NOT NULL,
  `dep_ssn` INT UNSIGNED NOT NULL,
  `dep_fname` VARCHAR(45) NOT NULL,
  `dep_lname` VARCHAR(45) NOT NULL,
  `dep_street` VARCHAR(45) NOT NULL,
  `dep_city` VARCHAR(45) NOT NULL,
  `dep_state` CHAR(2) NOT NULL,
  `dep_zip` CHAR(9) NOT NULL,
  `dep_phone` CHAR(10) NOT NULL,
  `dep_email` VARCHAR(100) NOT NULL,
  `dep_notes` VARCHAR(250) NULL,
  PRIMARY KEY (`dep_id`),
  INDEX `fk_dependent_employee1_idx` (`emp_id` ASC),
  CONSTRAINT `fk_dependent_employee1`
    FOREIGN KEY (`emp_id`)
    REFERENCES `sls11n`.`employee` (`emp_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

有人有什么想法吗?请用简单的术语,我说我不明白不是在开玩笑。

【问题讨论】:

    标签: mysql foreign-keys mysql-workbench relationships


    【解决方案1】:

    外键约束表示每个依赖项的emp_id 必须与employee 表中现有的emp_id 匹配。因此,在将此行添加到dependent 表之前,您必须使用emp_id = 13employee 添加一行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-15
      • 2014-04-08
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      • 2013-06-11
      • 2013-12-03
      • 2012-01-08
      相关资源
      最近更新 更多