这是两个db-table:
1)kind_basis
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)liste_land
id bigint(20) unsigned NO PRI NULL auto_increment
iso varchar(2) NO NULL
landname varchar(255) NO NULL
db-table 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`))
我做错了什么,但是什么?
答案 0 :(得分:4)
在kind_basis表中,你有一行或多行的geburtsland_id在表liste_land的字段id中没有匹配。
答案 1 :(得分:2)
当您尝试在现有表格上添加约束时,即kind_basis,该表格中的某些行违反了您要添加的约束。你需要做的是首先从kind_basis geburtsland_id列中删除那些在liste_land id列中不存在的值。那你就会成功。截断表不是唯一可用的选项,还有一些选项。