簡體   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