1

我对 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

任何帮助表示赞赏!

4

1 回答 1

0

Sequencepeps该错误意味着,您试图在表中插入一个值,该值在columnpeps的表中不存在。uniquepepsSequence

仔细观察,您会发现您的输入文件可能存在问题,在uniquepeps您编写的文件中,GGGGGUUUUUKKK但是在peps-file 中您有两个不同的相似文件:(GGGGGUUUUUKKK这是正确的)和GGGGUUUUUKKK(缺少 a G)-也许是你这边的错字?

于 2014-03-09T14:09:32.603 回答