MySQL:无法添加或更新子行

标签 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;

表格看起来像这样并且有效:

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/

相关文章:

php - HTML 表单 slider

mysql - 如何限制mysql表中可以存储的行数?

mysql - 错误 1452 MySQL Load Infile(但正确的数据)

c# - 此代码中返回相同结果但不同 SQL 的 LINQ 方法的执行顺序。里面到底发生了什么?

MySQL 外键约束 - 错误 1452 - 无法添加或更新子行

mysql - 高效的 MySQL 查询大量数据

php - 什么时候触发器性能更好?

SQL 仅在 if 语句内抛出

php - 比较从 MySql 数据库中提取的字符串日期