簡體   English   中英

錯誤1452 MySQL加載Infile(但數據正確)

[英]Error 1452 MySQL Load Infile (but correct data)

我正在嘗試使用LOAD DATA INFILE從.txt加載數據,問題是出現錯誤1452,但是所引用的外鍵存在於數據庫中。 另外其他LOAD DATA也在工作,只是不能解決這個和另外1個負載。

我已經檢查了所引用的數據,並且在加載之前已存在於數據庫中。 列也屬於同一類型。 我嘗試重新安裝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 ,約束sottocategoria_di_ibfk_2外鍵( Categoria2 )參考文獻categoriaNome )ON DELETE CASCADE)

問題是使用以'\\ n'結尾的行,切換到'\\ r \\ n',它起作用了! 仍然不知道為什么它適用於我正在使用的其他.txt文件(與Windows OS相同)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM