mysql无法创建外键

Sik*_*eon 3 mysql

这是我的两张桌子

CREATE TABLE IF NOT EXISTS `carslibrary` (   
  `CarID` int(10) unsigned NOT NULL AUTO_INCREMENT,   
  `CarName` varchar(255) NOT NULL,  
  `colorslibrary_ID` int(11) unsigned NOT NULL,   
  PRIMARY KEY (`CarID`),
  KEY `colorslibrary_ID` (`colorslibrary_ID`) 
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

CREATE TABLE IF NOT EXISTS `colorslibrary` (   
  `ColorID` int(11) unsigned NOT NULL AUTO_INCREMENT,   
  `ColorName` varchar(255) NOT NULL,
  PRIMARY KEY (`ColorID`) 
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
Run Code Online (Sandbox Code Playgroud)

我在以下查询中收到错误:

ALTER TABLE  `carslibrary` ADD FOREIGN KEY (  `colorslibrary_ID` )
REFERENCES  `cars2`.`colorslibrary` (`ColorID` );
Run Code Online (Sandbox Code Playgroud)

MySQL说:

#1452 - 无法添加或更新子行:外键约束失败(`cars2`.<结果2解释文件名'#sql-cf8_41a'>,CONSTRAINT`#sql-cf8_41a_ibfk_1` FOREIGN KEY(`colorslibrary_ID`)参考文献`colorslibrary`(`ColorID`))

N.B*_*.B. 6

您的表不为空,因此在创建约束时失败(引用未找到).

使用SET FOREIGN_KEY_CHECKS = 0;并重新运行您的alter table.