我在尝试将数据插入我的数据库时遇到 1452 错误。 这是我所做的:
create table Agenzia(
PartitaIva char(11) primary key,
Nome varchar(20) not null unique,
Pass varchar(20) not null,
Indirizzo varchar(35),
NumeroTelefonico varchar(10)
);
create table Parco(
Nome varchar(20) primary key,
Indirizzo varchar(35),
NumeroTelefonico varchar(11),
Cap decimal(5)
);
create table Affiliazione(
Agenzia char(11) not null,
Parco varchar(20) not null,
foreign key (Agenzia) references Agenzia(PartitaIva) on delete cascade on update cascade,
foreign key (Parco) references Parco(Nome) on delete cascade on update cascade,
primary key(Agenzia,Parco)
);
LOAD DATA LOCAL INFILE 'mypath\\Agenzia.csv'
INTO TABLE Agenzia
FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'
();
LOAD DATA LOCAL INFILE 'mypath\\Parco.csv'
INTO TABLE Parco
FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'
直到这一点,我没有收到任何错误并且数据到达了它们的位置,当我检查选择时,我尝试执行:
LOAD DATA LOCAL INFILE 'mypath\\Affiliazione.csv'
INTO TABLE Affiliazione
FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'
();
我得到了这个错误:
0 row(s) affected, 10 warning(s):
1452 Cannot add or update a child row:
a foreign key constraint fails (parchidb.affiliazione, CONSTRAINT
affiliazione_ibfk_2 FOREIGN KEY (Parco) REFERENCES Parco
(Nome) ON DELETE CASCADE ON UPDATE CASCADE)
重复10次
Records: 10 Deleted: 0 Skipped: 10 Warnings: 10
这是我试图用来自动填充我的数据库的 csv:
Agenzia.csv:
10000000001;primaA;pass1;via del test, 1;818811111
10000000002;secondaA;pass2;via del test, 2;818811112
10000000003;terzaA;pass3;via del test, 3;818811113
10000000004;quartaA;pass4;via del test, 4;818811114
10000000005;quintaA;pass5;via del test, 5;818811115
10000000006;sestaA;pass6;via del test, 6;818811116
10000000007;settimaA;pass7;via del test, 7;818811117
10000000008;ottavaA;pass8;via del test, 8;818811118
10000000009;nonaA;pass9;via del test, 9;818811119
10000000010;decimaA;pass10;via del test, 10;818811110
Parco.csv:
primoP;Via Loreto, 66;3406288992;63041
secondoP;Piazza Trieste e Trento, 1;3932265113;12060
terzoP;Via Cavour, 24;3915863173;81024
quartoP;Via Duomo, 95;3555935297;57019
quintoP;Via Sergente Maggiore, 142;3376561224;56010
sestoP;Piazza della Repubblica, 46;3889300484;88070
settimoP;Via San Pietro Ad Aram, 135;3369112023;20080
ottavoP;Via Belviglieri, 117;3131026198;191
nonoP;Via Tasso, 97;3318941971;6025
decimoP;Via Nizza, 22;3202997859;31010
附属机构.csv:
10000000001;primoP
10000000002;secondoP
10000000003;terzoP
10000000004;quartoP
10000000005;quintoP
10000000006;sestoP
10000000007;settimoP
10000000008;ottavoP
10000000009;nonoP
10000000010;decimoP
奇怪的是,如果尝试手动插入“Affilizione”的值,我没有引用错误,是不是我做错了什么?
最佳答案
好的。那就是'\r\n'而不是'\n'。用notepad++发现的。要使其正常工作,只需将 LINES TERMINATED BY '\n'
替换为 LINES TERMINATED BY '\r\n'
关于mysql 1452 在使用插入表时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41463903/