gpt4 book ai didi

mysql - ERROR 1005 MySQL Workbench 正向工程

转载 作者:行者123 更新时间:2023-11-30 00:21:06 31 4
gpt4 key购买 nike

我试图在 MySQL Workbench 中正向设计 EER 图,但不断收到此错误。我对此很陌生,因此任何帮助以及我可以用来改进的任何内容将不胜感激。附上错误消息和 SQL 脚本。谢谢!

  ERROR: Error 1005: Can't create table 'mnn09c.ASSIGN' (errno: 150)
CREATE TABLE IF NOT EXISTS `mnn09c`.`ASSIGN` (
`ASN_ID` INT NOT NULL,
`ASN_START_D` DATETIME NOT NULL,
`ASN_END_D` DATETIME NOT NULL,
`EMP_ID` INT NOT NULL,
PRIMARY KEY (`ASN_ID`),
CONSTRAINT `fk_ASSIGN_PRODUCT1`
FOREIGN KEY (`ASN_ID`)
REFERENCES `mnn09c`.`PRODUCT` (`ASN_ID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB

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

Fetching back view definitions in final form.

Nothing to fetch

Executing SQL script in server

ERROR: Error 1005: Can't create table 'mnn09c.ASSIGN' (errno: 150)

CREATE TABLE IF NOT EXISTS `mnn09c`.`ASSIGN` (

`ASN_ID` INT NOT NULL,

`ASN_START_D` DATETIME NOT NULL,

`ASN_END_D` DATETIME NOT NULL,

`EMP_ID` INT NOT NULL,

PRIMARY KEY (`ASN_ID`),

CONSTRAINT `fk_ASSIGN_PRODUCT1`

FOREIGN KEY (`ASN_ID`)

REFERENCES `mnn09c`.`PRODUCT` (`ASN_ID`)

ON DELETE NO ACTION

ON UPDATE NO ACTION)

ENGINE = InnoDB



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

Fetching back view definitions in final form.

Nothing to fetch
___________________________________________________________

`SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

DROP SCHEMA IF EXISTS `mnn09c` ;
CREATE SCHEMA IF NOT EXISTS `mnn09c` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
;
SHOW WARNINGS;
USE `mnn09c` ;

-- -----------------------------------------------------
-- Table `mnn09c`.`PRODUCT`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mnn09c`.`PRODUCT` ;

SHOW WARNINGS;
CREATE TABLE IF NOT EXISTS `mnn09c`.`PRODUCT` (
`PROD_ID` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`PROD_DURATION` INT NOT NULL,
`PROD_EVAL` VARCHAR(45) NOT NULL,
`ASN_ID` INT NOT NULL,
PRIMARY KEY (`PROD_ID`))
ENGINE = InnoDB;

SHOW WARNINGS;

-- -----------------------------------------------------
-- Table `mnn09c`.`ASSIGN`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mnn09c`.`ASSIGN` ;

SHOW WARNINGS;
CREATE TABLE IF NOT EXISTS `mnn09c`.`ASSIGN` (
`ASN_ID` INT NOT NULL,
`ASN_START_D` DATETIME NOT NULL,
`ASN_END_D` DATETIME NOT NULL,
`EMP_ID` INT NOT NULL,
PRIMARY KEY (`ASN_ID`),
CONSTRAINT `fk_ASSIGN_PRODUCT1`
FOREIGN KEY (`ASN_ID`)
REFERENCES `mnn09c`.`PRODUCT` (`ASN_ID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

SHOW WARNINGS;

-- -----------------------------------------------------
-- Table `mnn09c`.`EMPLOYEE`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mnn09c`.`EMPLOYEE` ;

SHOW WARNINGS;
CREATE TABLE IF NOT EXISTS `mnn09c`.`EMPLOYEE` (
`EMP_ID` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`EMP_LNAME` VARCHAR(45) NOT NULL,
`EMP_FNAME` VARCHAR(45) NOT NULL,
`EMP_ADDR` VARCHAR(45) NOT NULL,
`DEPT_ID` INT NOT NULL,
`DIVS_ID` INT NOT NULL,
PRIMARY KEY (`EMP_ID`),
INDEX `fk_EMPLOYEE_DEPT_idx` (`DEPT_ID` ASC),
CONSTRAINT `fk_EMPLOYEE_DEPT`
FOREIGN KEY (`DEPT_ID`)
REFERENCES `mnn09c`.`DEPT` (`DEPT_ID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_EMPLOYEE_ASSIGN1`
FOREIGN KEY (`EMP_ID`)
REFERENCES `mnn09c`.`ASSIGN` (`EMP_ID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

SHOW WARNINGS;

-- -----------------------------------------------------
-- Table `mnn09c`.`DIVISION`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mnn09c`.`DIVISION` ;

SHOW WARNINGS;
CREATE TABLE IF NOT EXISTS `mnn09c`.`DIVISION` (
`DIVS_ID` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`DIVS_NAME` VARCHAR(45) NOT NULL,
`DIVS_URL` VARCHAR(45) NOT NULL,
`DIVS_EMAIL` VARCHAR(45) NOT NULL,
`DIVS_LOC` VARCHAR(45) NOT NULL,
`EMP_ID` INT NOT NULL,
PRIMARY KEY (`DIVS_ID`),
UNIQUE INDEX `DIVS_ID_UNIQUE` (`DIVS_ID` ASC),
UNIQUE INDEX `DIVS_URL_UNIQUE` (`DIVS_URL` ASC),
UNIQUE INDEX `DIVS_EMAIL_UNIQUE` (`DIVS_EMAIL` ASC),
INDEX `fk_DIVISION_EMPLOYEE1_idx` (`EMP_ID` ASC),
CONSTRAINT `fk_DIVISION_EMPLOYEE1`
FOREIGN KEY (`EMP_ID`)
REFERENCES `mnn09c`.`EMPLOYEE` (`EMP_ID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

SHOW WARNINGS;

-- -----------------------------------------------------
-- Table `mnn09c`.`DEPT`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mnn09c`.`DEPT` ;

SHOW WARNINGS;
CREATE TABLE IF NOT EXISTS `mnn09c`.`DEPT` (
`DEPT_ID` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`DEPT_NAME` VARCHAR(45) NOT NULL,
`DEPT_LOCATION` VARCHAR(45) NOT NULL,
`DEPT_EMAIL` VARCHAR(45) NOT NULL,
`DEPT_URL` VARCHAR(45) NOT NULL,
`EMP_ID` INT NOT NULL,
`DIVS_ID` INT NOT NULL,
PRIMARY KEY (`DEPT_ID`),
UNIQUE INDEX `DEPT_ID_UNIQUE` (`DEPT_ID` ASC),
UNIQUE INDEX `DEPT_EMAIL_UNIQUE` (`DEPT_EMAIL` ASC),
UNIQUE INDEX `DEPT__UNIQUE` (`DEPT_URL` ASC),
INDEX `fk_DEPT_DIVISION1_idx` (`DIVS_ID` ASC),
INDEX `fk_DEPT_EMPLOYEE1_idx` (`EMP_ID` ASC),
CONSTRAINT `fk_DEPT_DIVISION1`
FOREIGN KEY (`DIVS_ID`)
REFERENCES `mnn09c`.`DIVISION` (`DIVS_ID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_DEPT_EMPLOYEE1`
FOREIGN KEY (`EMP_ID`)
REFERENCES `mnn09c`.`EMPLOYEE` (`EMP_ID`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

SHOW WARNINGS;

-- -----------------------------------------------------
-- Table `mnn09c`.`MANAGE`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mnn09c`.`MANAGE` ;

SHOW WARNINGS;
CREATE TABLE IF NOT EXISTS `mnn09c`.`MANAGE` (
`MANAGER_ID` INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`MANAGER_ID`),
UNIQUE INDEX `MANAGER_ID_UNIQUE` (`MANAGER_ID` ASC))
ENGINE = InnoDB;

SHOW WARNINGS;

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

最佳答案

这是一个外键错误,这意味着您尝试插入的表或数据违反了某些外键约束。

参见:http://dev.mysql.com/doc/refman/5.6/en/innodb-foreign-key-constraints.html

通常,这是由于使用由不知道如何正确转储外键的第 3 方程序创建的 SQL 转储,或者旧版本的 mysqldump 造成的。

下载 MySQL 5.5 或 5.6 客户端并从头开始 mysqldump 数据库。

您还可以通过重新排序 SQL 文件以在 ASSIGN 表之前创建 PRODUCT 表来使其工作。

关于mysql - ERROR 1005 MySQL Workbench 正向工程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23230708/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com