mysql - 1215 - 无法添加外键约束

标签 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 - 无法添加外键约束

最佳答案

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

关于mysql - 1215 - 无法添加外键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42457953/

相关文章:

c# - 使用列名称的字符串列表查询 SQL 表

mysql - 将 WordPress 移至新主机 - 导入数据库错误 #1062

mysql - 在 CakePHP 3.x 中获取关联数据

sql - WHERE 子句中的多个条件

php - 根据 URL 运行不同的 MySQL 查询

python - 向键添加值,具体取决于该值是否在另一个键中

MySQL 将表 y 中的 2 列连接到表 x 的行中

PHP 为下一个查询获取上一个 MySQL 查询的 ID,如何?

json - JQ键映射名称为大写并删除空格

Spring Caching - 忽略键的参数