Wie importiere ich mit Copy in eine PostgreSQL -Datenbank in eine PostgreSQL -Datenbank?
-
22-10-2019 - |
Frage
Ich versuche, eine .csv -Datei in eine PostgreSQL -Datenbank zu importieren. Ich benutze Pgadmin III dafür auf einer Win7 -Maschine.
Meine Abfrage sieht so aus:
\COPY pop_grid(GRID_ID, POP_TOT, YEAR, METHD_CL, CNTR_CODE, DATA_SRC) from 'C:\...\popgrid.csv' DELIMITERS ',' CSV;
Die Daten im .csv sehen so aus:
1kmN5142E2862 2 2006 D IS AIT
1kmN5141E2862 13 2006 D IS AIT
Mein Tisch:
CREATE TABLE pop_grid
(
GRID_ID text PRIMARY KEY,
POP_TOT int NOT NULL,
YEAR date NOT NULL,
METHD_CL varchar(2) NOT NULL,
CNTR_CODE varchar(32) NOT NULL,
DATA_SRC varchar(4) NOT NULL
);
Warum bekomme ich diesen Fehler?
ERROR: Missing data for column "pop_tot"
CONTEXT: COPY pop_grid, Row 1: "1kmN5142E2862;2;2006;D;IS;AIT"
Es fehlt nichts?
Lösung
Sie sagen das COPY
Befehl, nach Kommas als Grenzwerte zu suchen (DELIMITERS ','
), aber es gibt keine Kommas in Ihrem CSV. Verwenden Sie stattdessen das Format "Text" (es ist die Standardeinstellung, sodass Sie es nicht angeben müssen) und geben Sie keinen Trennzeichen an:
Die Standardeinstellung ist ein Registerkartenzeichen im Textformat.
(Quelle)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange