Hey liebe Community,
ich habe ein kleines Problem an dem ich schon eine Weile sitze, es geht darum über eine CSV datei Datensätze zu importieren.
CSV:
12,testvar1
13,testvar2
14,
15,testvar3
Import:
LOAD DATA LOCAL INFILE '/myfile.csv' IGNORE
INTO TABLE model
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(var);
Ergebniss:
12,testvar1
13,testvar2
14,
15,testvar3
Wie zu sehen ist wurden alle Datensätze importiert, es ist aber beabsichtigt den Datensatz nicht zu importieren wenn er für die var variable einen "" wert hat. Dies habe ich auf 2 wegen versucht.
Weg 1:
delimiter //
CREATE TRIGGER modelcheck BEFORE INSERT ON model
FOR EACH ROW BEGIN
IF CHAR_LENGTH(new.var) = 0
THEN
set new.var = NULL;
END IF;
END
;//
delimiter ;
Ergebniss:
12,testvar1
13,testvar2
Weg 2:
Set var = IF(CHAR_LENGTH(@var) > 0, @var, null);
Ergebniss:
12,testvar1
13,testvar2
14,
15,testvar3
Weg 1, verursacht einen Fehler den ich trotz IGNORE beim Import, nicht überpsringen kann, weshalb mir dann die Daten nach dem "Fehlerhafte" Datensatz einfach nicht importiert/übersprungen werden. Zu Weg 2, hier versuche ich es innerhalb des Set´s zu überprüfen doch leider auch ein eher sinnloses Ergebniss. Ich hoffe ihr könnt mir helfen, vielen Dank schon mal.