MySQL:无法添加或更新子行
我是MySQl的新手,当我遇到这个错误时,我想用一个键连接两个表。我浏览了一些相关的问题,但似乎找不到问题所在 首先,我创建了这个表,它可以工作:MySQL:无法添加或更新子行,mysql,sql,mysql-error-1452,Mysql,Sql,Mysql Error 1452,我是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; 该表如下所示,
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
中插入一个值,该值在列Sequence
的表uniquepeps
中不存在
仔细看,您可以看到您的输入文件可能有问题,您在
uniquepeps
中编写了gggg uuuuuu kk
,但是在peps
-文件中有两个不同的类似文件:ggggggg uuuuuuu kk
(正确)和gggggguguuuuuuuukk
(缺少G
)-也许是你这边的错别字?是的,是问题中的错别字。我现在编辑了,但在我要加载的文件中,顺序是正确的,错误仍然存在,我明白了-您确定所有pep
都存在于uniquepeps
中吗?你问题中的内容描述是整个文件,还是仅仅是开始?是的,它是整个文件。我以前试过一些东西(在两个不同的文件上),我的钥匙上只有ID,而且有效。我想看看我是否也能用序列作为键。我只知道真正的基础知识,但这可能是一些技术性的东西吗?我读了一些关于发动机的书,但不知道它是如何工作的,也不知道它是什么。谢谢你已经调查过了!我不知道为什么,但如果我在pepsandprots中添加一列Unique_peps_ID,并将其用作uniquepeps中主键ID的外键,我没有错误,我可以毫无问题地加载数据。我想我可以解决这个问题,但我不明白为什么以前的方法不起作用。