mysql 1452 在使用插入表时

标签 mysql csv reference insert

我在尝试将数据插入我的数据库时遇到 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/

相关文章:

读取具有不同行数的多个 CSV 文件以在文件开头跳过

c++11 - 实现具有 const 正确性的可变参数 zip 函数

JavaScript:如何在数组内的对象内引用数组并向其推送内容?

reference - 有没有办法将引用类型克隆到拥有的类型中?

php - 获取mysql内容

PHP mysqli 返回错误的列

MYSQL : How to select every YEAR_MONTH between two dates?

php - 使用 upper 和 like 准备 MySQL 语句

java - 将多个 CSV 映射到单个 POJO

java - 如何使用java将数据放入单独的新列csv中?