错误1452 MySQL加载Infile(但数据正确)

时间:2019-07-18 05:54:18

标签: mysql foreign-keys mysql-workbench mysql-error-1452

我正在尝试使用LOAD DATA INFILE从.txt加载数据,问题是我收到错误1452,但是所引用的外键存在于我的数据库中。其他LOAD DATA也在工作,只是不能解决这个问题和另外1个负载。

我已经检查了所引用的数据,并且在加载之前已存在于DB中。列也属于同一类型。我尝试重新安装MySQL仍然无法正常工作(但是我的一个朋友使用相同的代码/.txt可以加载数据)。如果它由一行组成,我可以加载.txt,但是添加第二行时出现错误。

-- The table referred:
CREATE TABLE Categoria (
Nome    VARCHAR(50)     NOT NULL,
Immagine    MEDIUMBLOB,
PRIMARY KEY (Nome));

-- The table with FK:
CREATE TABLE Sottocategoria_Di (
Categoria1  VARCHAR(50)     NOT NULL,
Categoria2  VARCHAR(50)     NOT NULL,
PRIMARY KEY (Categoria1, Categoria2),
FOREIGN KEY (Categoria1) REFERENCES Categoria(Nome) ON DELETE NO ACTION,
FOREIGN KEY (Categoria2) REFERENCES Categoria(Nome) ON DELETE CASCADE);

INSERT INTO Categoria VALUES ('Chitarra', NULL);
INSERT INTO Categoria VALUES ('Chitarra Acustica', NULL);
INSERT INTO Categoria VALUES ('Chitarra Classica', NULL);

LOAD DATA INFILE "C:/ProgramData/MySQL/MySQL Server 
8.0/Uploads/MusicShop/Sottocategoria.txt" INTO TABLE 
Music.Sottocategoria_Di
CHARACTER SET latin1
FIELDS TERMINATED BY '|' 
ENCLOSED BY '' 
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(Categoria1,Categoria2);

-- Sottocategoria.txt
Categoria1,Categoria2
Chitarra Classica|Chitarra
Chitarra Acustica|Chitarra

我的一个朋友重新安装了MySQL,并使用相同的确切脚本/.txt可以加载文件,但我仍然无法加载。

错误代码:1452。无法添加或更新子行:外键约束失败(musicsottocategoria_di,CONSTRAINT sottocategoria_di_ibfk_2外键(Categoria2)参考categoriaNome)删除级联上

1 个答案:

答案 0 :(得分:0)

问题在于使用以'\ n'终止的行,切换到'\ r \ n'并成功了!仍然不知道为什么它适用于其他文件.txt我正在使用(同一Windows操作系统)