Ich möchte eine neue eingebettete h2-Datenbank aus einer CSV-Datei erstellen. Hier ist das Snippet der CSV-Datei
Land, Stadt, AccentCity, Region, Bevölkerung, Breitengrad, Längengrad
Anzeige, aixovall, Aixovall, 06, 42,4666667,1,4833333
ad, Andorra, Andorra, 07,, 42.5, 1.5166667
ad, andorra la vella, Andorra la Vella, 07,20430,42,5,1,5166667
ad, andorra-vieille, Andorra-Vieille, 07,, 42.5, 1.5166667
Anzeige, andorre, Andorre, 07,, 42.5, 1.5166667
Ich möchte nicht alle Felder der CSV-Datei abrufen. Eigentlich möchte ich sie alle außer den City und Region Feldern.
Außerdem möchte ich den Inhalt der csv-Datei nur dann in die Datenbank einfügen, wenn der Inhalt von POPULATION nicht leer ist.
Daher müssen wir im obigen csv-Beispiel nur die dritte Zeile in die h2-Tabelle WORLDCITIES einfügen, weil das Feld 'population' angegeben ist.
Hier ist ein Codeausschnitt, den ich geschrieben habe. Aber wie Sie sehen, ist es noch nicht genug:
%Vor%Und wenn ich richtig verstehe, erstellt CSVREAD die Felder mit dem VARCHAR-Typ, aber ich möchte die Dinge so:
LAND VARCHAR (3), ACCENTCITY VARCHAR (40), BEVÖLKERUNG FLOAT, LATITUDE FLOAT, LONGITUDE FLOAT
Vielen Dank im Voraus für die Hilfe.
Sie können die Spaltendefinitionen in CREATE TABLE als dokumentiert und kombiniert dies mit einer WHERE-Klausel. Bitte beachten Sie, dass die Verwendung von CREATE TABLE AS SELECT etwas schneller ist als die separaten Anweisungen CREATE TABLE und INSERT INTO (nicht sicher, ob die Geschwindigkeit für Sie sehr wichtig ist):
%Vor%