データベース スキーマを作成するスクリプトを 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
何が間違っているのかわかりません。別のマシンで同じスクリプトを使用していましたが、正常に動作していました。