我是 MySQl 的新手,当我遇到这个错误时想用一个键连接两个表。我浏览了一些相关问题,但似乎找不到问题所在。
首先我创建了这个表并且它有效:
CREATE TABLE uniquepeps (ID INT NOT NULL, Sequence CHAR(30)
NOT NULL, PRIMARY KEY (Sequence));
LOAD DATA LOCAL INFILE "D://...//Uniquepeps.txt" INTO TABLE uniquepeps;
表格看起来像这样并且有效:
1 AAAATTTTTGGGGGG
2 GGGGGUUUUUKKK
3 OOOOPPPPMMMNN
然后我创建了另一个表:
CREATE TABLE peps (ID INT NOT NULL, Sequencepeps CHAR(30)
NOT NULL, PROTID INT NOT NULL, PRIMARY KEY (ID), CONSTRAINT
Seq_fk FOREIGN KEY (Sequencepeps) references uniquepeps(Sequence));
但是当我尝试加载数据时它不起作用并且出现错误
LOAD DATA LOCAL INFILE "D://...//Pepsandprots.txt" INTO TABLE peps;
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`biology`.`peps`, CONSTRAINT `Seq_fk` FOREIGN KEY (`Sequencepeps`) REFERENCES `uniquepeps` (`Sequence`) )
第二张表的数据是:
1 AAAATTTTTGGGGGG 1
2 AAAATTTTTGGGGGG 2
3 AAAATTTTTGGGGGG 3
4 AAAATTTTTGGGGGG 4
5 GGGGGUUUUUKKK 1
6 GGGGGUUUUUKKK 8
7 OOOOPPPPMMMNN 9
8 OOOOPPPPMMMNN 25
感谢任何帮助!
最佳答案
该错误意味着,您正试图将一个值插入 peps
表中的 Sequencepeps
中,而该值在 uniquepeps
表中不存在> 在 Sequence
列中。
仔细观察,您会发现您的输入文件可能存在问题,您在 uniquepeps
中编写了 GGGGGUUUUUKKK
但是在 peps
-file 你有两个不同的相似的:GGGGGUUUUUKKK
(正确)和 GGGGUUUUUKKK
(缺少 G
)- 也许是你这边打错了吗?
关于MySQL:无法添加或更新子行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22283170/