簡體   English   中英

MySQL返回:errno:150-外鍵錯誤

[英]MySQL returns: errno: 150 - foreign key error

這是我創建三個表的模式。 第三個具有以下兩個中的外鍵。 我不知道為什么MySQL無法創建第三個。 列的類型匹配。

DROP TABLE IF EXISTS `SET`;
CREATE TABLE IF NOT EXISTS `SET` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `SET_ID` int(11) DEFAULT 0,
  `SET_NAME` varchar(32) NOT NULL,
  `SET_RELEASE_DATE` date NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;

DROP TABLE IF EXISTS `TYPE`;
CREATE TABLE IF NOT EXISTS `TYPE` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `TYPE_ID` int(11) DEFAULT 0,
  `TYPE_NAME` varchar(32) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;

DROP TABLE IF EXISTS `CARD`;
CREATE TABLE IF NOT EXISTS `CARD` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `CARD_ID` int(11) NOT NULL DEFAULT 0,
  `CARD_NAME` varchar(64) DEFAULT NULL,
  `SET_ID` int(11) DEFAULT 0,
  `TYPE_1` int(11) DEFAULT 0,
  `TYPE_2` int(11) DEFAULT 0,
  `TYPE_3` int(11) DEFAULT 0,
  `TYPE_4` int(11) DEFAULT 0,
  PRIMARY KEY (`ID`),
  CONSTRAINT `card_idfk_1` FOREIGN KEY (`SET_ID`)
    REFERENCES `SET`(`SET_ID`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `card_t1fk_1` FOREIGN KEY (`TYPE_1`)
    REFERENCES `TYPE`(`TYPE_ID`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `card_t2fk_1` FOREIGN KEY (`TYPE_2`)
    REFERENCES `TYPE`(`TYPE_ID`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `card_t3fk_1` FOREIGN KEY (`TYPE_3`)
    REFERENCES `TYPE`(`TYPE_ID`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `card_t4fk_1` FOREIGN KEY (`TYPE_4`)
    REFERENCES `TYPE`(`TYPE_ID`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;

創建外鍵關系時,所討論的鍵必須在引用表上具有索引(請參見此處 )。

例如,此代碼:

DROP TABLE IF EXISTS `SET`;
CREATE TABLE IF NOT EXISTS `SET` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `SET_ID` int(11) NOT NULL DEFAULT 0,
  `SET_NAME` varchar(32) NOT NULL,
  `SET_RELEASE_DATE` date NOT NULL,
  PRIMARY KEY (`ID`),
  index(set_id)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;

解決了關於card_idfk_1約束的問題。 注意:您可以使用keyindex作為關鍵字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM