我插入一些數據分爲以下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