1452 MySQL错误:外键约束失败
以下是两个db表: 1类基础1452 MySQL错误:外键约束失败,mysql,sql,Mysql,Sql,以下是两个db表: 1类基础 id bigint(20) unsigned NO PRI NULL auto_increment vorname varchar(64) NO NULL nachname varchar(64) NO NULL geburtsland_id bigint(20) unsigned
id bigint(20) unsigned NO PRI NULL auto_increment
vorname varchar(64) NO NULL
nachname varchar(64) NO NULL
geburtsland_id bigint(20) unsigned YES MUL NULL
2李斯特岛
id bigint(20) unsigned NO PRI NULL auto_increment
iso varchar(2) NO NULL
landname varchar(255) NO NULL
db表liste_land包含国家摘录列表:
1 AD Andorra
2 AE Vereinigte Arabische Emirate
3 AF Afghanistan
4 AG Antigua und Barbuda
5 AI Anguilla
6 AL Albanien
7 AM Armenien
8 AO Angola
....
这是sql查询:
ALTER TABLE `kind_basis`
ADD CONSTRAINT `fk_geburtsland_id`
FOREIGN KEY ( `geburtsland_id` )
REFERENCES `liste_land` (`id`)
这是mysql错误消息:
#1452 - Cannot add or update a child row: a foreign key constraint fails
(`testing_v2.0.0`.<result 2 when explaining filename '#sql-6687_13b16'>,
CONSTRAINT `fk_geburtsland_id` FOREIGN KEY (`geburtsland_id`) REFERENCES
`liste_land` (`id`))
我做错了什么,但是什么 在实物基础表中,您有一行或多行的geburtsland\u id与表lister\u land的字段id不匹配。在实物基础表中,您有一行或多行的geburtsland\u id与表lister\u land的字段id不匹配。当您试图对现有表(即实物基础)添加约束时,该表中的某些行违反了您试图添加的约束。您需要做的是首先从Gend_basis geburtsland_id的列中删除那些在List_land id列中不存在的值。那么你就会成功。截断表并不是唯一可用的选项,还有其他选项。当您试图在现有表上添加约束(即种类基础)时,该表中的某些行违反了您试图添加的约束。您需要做的是首先从Gend_basis geburtsland_id的列中删除那些在List_land id列中不存在的值。那么你就会成功。表的截断不是唯一可用的选项,还有更多选项。您是否可以运行以下查询以确保:从种类库中选择geburtsland\u id,kb上的左连接列表\u ll。geburtsland\u id=ll.id,其中ll.id为null;哪一个是父表kind_basis或liste_land?可以运行以下查询以确保:从kind_basis kb中选择geburtsland_id left join liste_land ll on kb.geburtsland_id=ll.id,其中ll.id为null;哪一个是父表种类基础或列表?它们都是正确答案,但我只能设置一个接受答案。它们都是正确答案,但我只能设置一个接受答案。