繁体   English   中英

无法添加外键约束1215

[英]Cannot add Foreign Key constraint 1215

我收到以下错误:无法添加外键约束(1215)我正在使用MySQL工作台导出工具“ Forward Engineer”来获取代码。

这是我的代码:

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';

CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
USE `mydb` ;

CREATE TABLE IF NOT EXISTS `mydb`.`serie` (
  `serieid` INT NOT NULL,
  `name` VARCHAR(30) NOT NULL,
  PRIMARY KEY (`serieid`))
ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS `mydb`.`season` (
  `serieid` INT NOT NULL,
  `seasonid` INT NOT NULL,
  `name` VARCHAR(45) NOT NULL,
  `description` TEXT NULL,
  PRIMARY KEY (`serieid`, `seasonid`),
  CONSTRAINT `fk_season_serie`
    FOREIGN KEY (`serieid`)
    REFERENCES `mydb`.`serie` (`serieid`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS `mydb`.`episode` (
  `serieid` INT NOT NULL,
  `seasonid` INT NOT NULL,
  `episodeid` INT NOT NULL,
  `title` VARCHAR(100) NOT NULL,
  `description` TEXT NULL,
  PRIMARY KEY (`serieid`, `seasonid`, `episodeid`),
  INDEX `fk_episode_season1_idx` (`seasonid` ASC),
  CONSTRAINT `fk_episode_serie1`
    FOREIGN KEY (`serieid`)
    REFERENCES `mydb`.`serie` (`serieid`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_episode_season1`
    FOREIGN KEY (`seasonid`)
    REFERENCES `mydb`.`season` (`seasonid`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

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

我不知道问题是什么,对我来说一切似乎都很好。 有什么帮助吗? 使用MySQL Workbench创建。

谢谢

CREATE TABLE IF NOT EXISTS `mydb`.`episode` (
. . .
FOREIGN KEY (`seasonid`)
REFERENCES `mydb`.`season` (`seasonid`)

此外键引用的列不是season表的键的最左列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM