我插入一些数据分为以下MySQL表genotypegene:MySQL错误1452不能插入数据
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`populationdb`.`genotypegene`, CONSTRAINT `genotypegene_ibfk_2` FOREIGN KEY (`Gene`) REFERENCES `gene` (`Gene`))
我插入数据到这个表是: Genotype1,基因1 Genotype1,基因2 Genotype1,基因3 Genotype1,Gene4
基因型表中有一个Genotype1拷贝,其思想是每个基因型可以包含许多基因,但每个基因可以存在多种基因型(目前只有1种基因型,但后来我会插入更多)。我读here,我可以关闭外键检查,但我不愿意这样做,不知道这个错误的原因。这是因为基因型表中只有一个Genotype1拷贝? (我已经检查过Genotype1,Gene1等在主键表中的格式/拼写相同)。
以防万一,这里是我使用插入数据的代码:
mysql> LOAD DATA LOCAL INFILE 'C:\\.....genotypegene.csv'
-> INTO TABLE genotypegene
-> FIELDS TERMINATED BY ','
-> (Genotype, Gene);
感谢
您是否试图使用'INSERT'添加数据,而不是'LOAD DATA'?也许在字段之间有一些空格,当通过LOAD DATA插入时会包含这些空格。 – rMX 2011-12-21 10:39:57
该错误告诉我们在'Gene'表中缺少父数据。你有没有检查过你试图填充'genotypegene.Gene'列的所有数据是否存在于'Gene'表中?此外,您是否检查过CSV值或'gene.Gene'列中的空格?还有值的情况(上,下等)。可能会绊倒你.. – 2011-12-21 10:44:57
工作表示感谢 - 我没有想到它,因为完全相同的数据插入罚款之前,我添加了外键,但我想这是因为它并不在意它有白色空间。 – Lisa 2011-12-21 10:51:48