newit1
Goto Top

Bei INSERT Fehler abbrechen

Hallo zusammen,

ich habe ein kleines Problem. Das unterstehende Skript importiert eine CSV Datei in eine Datenbank. Den Aufbau der CSV findet ihr unten.
Funktioniert auch wunderbar!

Wenn ich aber z.B. in der CSV das Feld "ID" (1 oder 2) ändere und einen Buchstaben einsetzte, importiert das Skript die Daten trotzdem. Ich würde gerne das es abbricht wenn etwas mit der Datei nicht stimmt.
Was kann ich dagegen tun?


Script:


#! /bin/sh

mysql --user=root --password=12345 \
-e "USE db1;" \  
-e "CREATE TABLE IF NOT EXISTS tl_xxx LIKE tl_xxxx;" \  
-e "TRUNCATE TABLE tl_xxxx;" \  
-e "LOAD DATA LOCAL INFILE \"/home/myuser/Schreibtisch/Datei.csv\" REPLACE INTO TABLE tl_xxxx CHARACTER SET 'utf8' FIELDS TERMINATED BY ';' ;" \  



CSV-Datei Aufbau:


1;Müller;Max;max.müller@e-mail.de
2;Kaufmann, Thomas;thomas.kaufmann@e-mail.de

Content-Key: 362671

Url: https://administrator.de/contentid/362671

Printed on: April 25, 2024 at 04:04 o'clock

Member: Voiper
Voiper Jan 29, 2018 at 07:19:10 (UTC)
Goto Top
Moin,

du kannst mit sed und Regex prüfen, ob alles bis zum ersten Trennnzeichen wirklich Zahlen sind und das in eine if-Abfrage verpacken.

Gruß, V
Member: newit1
newit1 Jan 29, 2018 at 08:04:25 (UTC)
Goto Top
Okay

Aber eine Grundlegende Frage..?
Müsste das Skript nicht automatisch abbrechen? ... ich habe ja keinen IGNORE Befehl drin?
Member: Voiper
Voiper Jan 29, 2018 at 08:10:30 (UTC)
Goto Top
Das kommt auf dein Datenbankschema an. Wenn die Spalte ID nicht fest auf einen numerischen Datentyp eingestellt ist, haut er da alles rein.
Member: newit1
newit1 Jan 29, 2018 at 08:27:56 (UTC)
Goto Top
Hilft dir das weiter?

unbenannt
Member: Voiper
Voiper Jan 29, 2018 at 15:06:48 (UTC)
Goto Top
Gegenfrage: Hilft die mein Vorschlag mit Regex und sed weiter?

Wenn das Script trotzdem durchläuft, sind dann die strings in der id spalte drin? oder sind die dann leer?
Member: newit1
newit1 Jan 29, 2018 at 15:21:06 (UTC)
Goto Top
Skript laüft durch, die ID spalte bleibt dann aber leider leer.
Danke für die Idee.
Member: Voiper
Voiper Jan 29, 2018 at 15:23:33 (UTC)
Goto Top
Gut, dann liegt es aber tatsächlich nur an dem CLI-Script. Bau Dir selbst eine Abbruchbedingung.

Gruß, V
Member: Arano
Arano Jan 29, 2018 at 17:39:17 (UTC)
Goto Top