1215 - 无法添加外键约束

时间:2017-02-25 15:33:23

标签: mysql sql key

我实际上尝试创建一个数据库,但我的外键有错误。你能告诉我吗?

DROP TABLE IF EXISTS `City`;
CREATE TABLE  `City` (`id` int(11) NOT NULL AUTO_INCREMENT,
`idCountry` int(11) DEFAULT NULL,
`Name` char(35) CHARACTER SET latin1 NOT NULL DEFAULT '',
`CountryCode` char(3) CHARACTER SET latin1 NOT NULL DEFAULT '',
`District` char(20) CHARACTER SET latin1 NOT NULL DEFAULT '',
`Population` int(11) NOT NULL DEFAULT '0',
 PRIMARY KEY (`id`) USING BTREE,
 KEY `fk_constraint_city_country` (`idCountry`),
 CONSTRAINT `fk_constraint_city_country` FOREIGN KEY (`idCountry`) 
 REFERENCES `Country` (`id`)
 ) ENGINE=InnoDB AUTO_INCREMENT=4080 DEFAULT CHARSET=utf8;

我有这个错误:MySQL说:文档 1215 - 无法添加外键约束

1 个答案:

答案 0 :(得分:0)

DROP TABLE IF EXISTS `Country`;
CREATE TABLE  `Country` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`Code` char(3) CHARACTER SET latin1 DEFAULT NULL,
`Name` char(52) CHARACTER SET latin1 NOT NULL DEFAULT '',
`Continent` enum('Asia','Europe','North   
 America','Africa','Oceania','Antarctica','South America') CHARACTER SET    
 latin1 NOT NULL DEFAULT 'Asia',
`Region` char(26) CHARACTER SET latin1 NOT NULL DEFAULT '',
`SurfaceArea` float(10,2) NOT NULL DEFAULT '0.00',
`IndepYear` smallint(6) DEFAULT NULL,
`Population` int(11) NOT NULL DEFAULT '0',
`LifeExpectancy` float(3,1) DEFAULT NULL,
`GNP` float(10,2) DEFAULT NULL,
`GNPOld` float(10,2) DEFAULT NULL,
`LocalName` char(45) CHARACTER SET latin1 NOT NULL DEFAULT '',
`GovernmentForm` char(45) CHARACTER SET latin1 NOT NULL DEFAULT '',
`HeadOfState` char(60) CHARACTER SET latin1 DEFAULT NULL,
`Capital` int(11) DEFAULT NULL,
`Code2` char(2) CHARACTER SET latin1 NOT NULL DEFAULT '',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=240 DEFAULT CHARSET=utf8;

并且有国家语言:

DROP TABLE IF EXISTS `CountryLanguage`;
CREATE TABLE  `CountryLanguage` (
`idCountry` int(11) NOT NULL DEFAULT '0',
`idLanguage` int(11) NOT NULL DEFAULT '0',
`IsOfficial` enum('T','F') CHARACTER SET latin1 NOT NULL DEFAULT 'F',
`Percentage` float(4,1) NOT NULL DEFAULT '0.0',
 PRIMARY KEY (`idCountry`,`idLanguage`) USING BTREE,
 KEY `fk_constraint_Language` (`idLanguage`),
 CONSTRAINT `fk_constraint_Country` FOREIGN KEY (`idCountry`) REFERENCES    
 `Country` (`id`),
 CONSTRAINT `fk_constraint_Language` FOREIGN KEY (`idLanguage`)    
 REFERENCES `Language` (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf