mysqlimport:错误:1452

标签 mysql perl foreign-keys mysqlimport

我用 Perl 编写了一个脚本来创建数据库模式:

CREATE TABLE descType (
    id MEDIUMINT unsigned PRIMARY KEY,
    descr MEDIUMTEXT)ENGINE=InnoDB;

CREATE TABLE taxType (
    id MEDIUMINT unsigned PRIMARY KEY,
    descr TEXT not null)ENGINE=InnoDB;

CREATE TABLE uniref(
            id INT unsigned PRIMARY KEY,
            seqId varchar (50) not null,
            descId MEDIUMINT unsigned not null,
            n MEDIUMINT unsigned not null,
            taxId MEDIUMINT  unsigned not null,
            repId varchar (50) not null,
            foreign KEY (descId) REFERENCES descType(id),
            FOREIGN KEY (taxId) REFERENCES taxType(id),
            unique(seqId)
            )ENGINE=InnoDB; 

当我使用此命令时:

system qq(mysqlimport -u$mySqlUser -p$mySqlPass $database $table --local --fields-terminated-by="\t" --lines-terminated-by="\r\n") )== 0
   or die "ERROR: an error occurred while importing $table in $database. $?";

我收到此错误:

mysqlimport: Error: 1452, Cannot add or update a child row: a foreign key 
constraint fails (`uniref_2013_08`.`uniref`, CONSTRAINT `uniref_ibfk_1` 
FOREIGN KEY (`descId`) REFERENCES `descType` (`id`)), when using 
table: uniref

我不知道我做错了什么。我在另一台机器上使用相同的脚本并且运行良好。

最佳答案

外键可以保持数据完整性,并在没有父行的情况下防止插入。您需要先填充 descType 父表。

关于mysqlimport:错误:1452,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18785403/

相关文章:

c# - 从 datagridview 选定的行更新 mysql 数据库

mysql - PhpMyAdmin,程序保存在文件系统上

performance - Perl:为什么 if 语句比 "and"慢?

regex - 如何在替换中使用变量作为修饰符

sql-server - SQL Server 中的 FK 验证是否总是使用 sys.foreign_keys 中指定的索引?

java - 具有 3 个外键的 hibernate 表

php - MySql "order by"签名用户创建了什么 PHP

perl - 在 Linux 上自动替换主机 key

mysql - 一对多 MySQL

mysql - 外键中的RESTRICT是什么意思?