gpt4 book ai didi

MySQL 错误 1215 : unable to add foreign key constraint

转载 作者:可可西里 更新时间:2023-11-01 09:01:41 26 4
gpt4 key购买 nike

我到处查看有关此错误的信息并阅读了大量可能的解决方案,但我仍然无法弄清楚我的脚本有什么问题。

在服务器中执行SQL脚本

ERROR: Error 1215: Cannot add foreign key constraint

SQL 代码:

    -- -----------------------------------------------------
-- Table `mydb`.`MARINE`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`MARINE` (
`EDIPI` DECIMAL(10) NOT NULL,
`LastName` VARCHAR(25) NOT NULL,
`FirstName` VARCHAR(25) NOT NULL,
`MiddleInitial` CHAR(1) NULL,
`Rank` VARCHAR(6) NOT NULL,
`MOS` DECIMAL(4) NOT NULL,
`BATTLE_SPACE_Company` CHAR(1) NOT NULL,
`BATTLE_SPACE_Section/Platoon` VARCHAR(2) NOT NULL,
PRIMARY KEY (`EDIPI`),
INDEX `fk_MARINE_BATTLE_SPACE1_idx` (`BATTLE_SPACE_Company` ASC, `BATTLE_SPACE_Section/Platoon` ASC),
CONSTRAINT `fk_MARINE_BATTLE_SPACE1`
FOREIGN KEY (`BATTLE_SPACE_Company` , `BATTLE_SPACE_Section/Platoon`)
REFERENCES `mydb`.`BATTLE_SPACE` (`Company` , `Section/Platoon`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB

SQL脚本执行完毕:语句:7条成功,1条失败

以最终形式取回 View 定义。没有什么可取的

CREATE TABLE `battle_space` (
`Company` char(1) NOT NULL,
`Location` varchar(20) NOT NULL,
`Section/Platoon` varchar(2) NOT NULL,
PRIMARY KEY (`Company`,`Location`,`Section/Platoon`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

最佳答案

有几个问题。

  1. MARINE 表定义中也包含 DEFAULT CHARSET=utf8;
  2. 您需要将外键中的作为相同顺序

username@mydb[temp]>创建表 battle_space (
公司 char(1) NOT NULL,
位置 varchar(20) NOT NULL,
varchar(2) 部分 NOT NULL,
主键(公司、位置、部分)
) 引擎=InnoDB 默认字符集=utf8;
查询正常,0 行受影响(0.02 秒)

username@mydb[temp]>如果不存在则创建表 MARINE (
EDIPI 十进制(10)不为空,
姓氏 VARCHAR(25) 不为空,
名字 VARCHAR(25) 不为空,
中间初始 CHAR(1) NULL,
排名 VARCHAR(6) NOT NULL,
MOS DECIMAL(4) 不为空,
BATTLE_SPACE_Company CHAR(1) 不为空,
BATTLE_SPACE_Section VARCHAR(2) NOT NULL,
位置 VARCHAR(20) NOT NULL,
主键(EDIPI),
INDEX fk_MARINE_BATTLE_SPACE1_idx (BATTLE_SPACE_Company ASC , BATTLE_SPACE_Section ASC , Location),
约束 fk_MARINE_BATTLE_SPACE1 外键(BATTLE_SPACE_Company,位置,BATTLE_SPACE_Section)
引用 battle_space(公司、地点、部门)
删除时无操作 更新时无操作
) 引擎=INNODB 默认字符集=UTF8;
查询正常,0 行受影响(0.02 秒)

关于MySQL 错误 1215 : unable to add foreign key constraint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39416565/

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