MySQL无法添加或更新子行

时间:2017-04-11 13:42:22

标签: mysql csv

我有两个表:tblACTypeCharacteristics和tblAircrafts。

tblACTypeCharacteristics定义:

create table if not exists tblACTypeCharacteristics(
idAC_type        varchar(255) not null,
numPassengers    int,
primary key(idAC_type));

tblAircrafts定义:

create table if not exists tblAircrafts(
idAC       int not null auto_increment,
txtAC_tag  varchar(255) not null,
txtAC_type varchar(255) not null,
primary key(idAC, txtAC_tag));

另外,我添加了一个如下所示的外键:

alter table tblaircrafts add foreign key(txtAC_type) 
        references tblactypecharacteristics(idAC_type);

在tblACTypeCharacteristics中,为每种类型的飞机定义了最大乘客数。 在tblAircraft中列出了所有可用的飞机。 我可以通过输入例如:

来插入新飞机
insert into tblaircrafts (txtAC_tag, txtAC_type) values ('OE-LDA','A319-112');

但是由于周围有很多飞机,我不想手动添加每一架飞机。 我想通过csv文件导入它们(我有一些飞机列表)。 我按照以下方式导入它:

load data local infile 'C:\\Users\\t_lichtenberger\\Desktop\\tblAircrafts.csv'
into table tblaircrafts
character set utf8
fields terminated by ';'
lines terminated by '\n'
ignore 1 lines;

但是由于我想将.csv文件导入到tblaircraft表中,我收到以下错误:

15:08:37    alter table tblaircrafts  add foreign key(txtAC_type) references tblactypecharacteristics(idAC_type)    Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`pilotproject`.`#sql-11d0_2da`, CONSTRAINT `#sql-11d0_2da_ibfk_1` FOREIGN KEY (`txtAC_type`) REFERENCES `tblactypecharacteristics` (`idAC_type`))   0.641 sec

我无法解释原因。列数相同,列的数据类型相同。我已经仔细检查了csv中的AC_types,它们不在tblACTypeCharacteristic表中,它应该是好的..

csv文件的前几行如下所示:

first few lines of the aircraft csv

为什么错误仍然存​​在的任何建议? 非常感谢你!

1 个答案:

答案 0 :(得分:0)

我终于得到了解决方案。我只是通过执行

来禁用外键检查
headerA+Standalone.h

在设置外键之前它已经工作了!之后我能够添加csv记录。