2017-04-30 4 views
0

ich versucht bin Daten aus einer CSV-Datei in eine PostgreSQL-Datenbank zu kopieren und die folgende Zeile verwenden, dies zu tun:PostgreSQL 9.4 Kopie Fehler

\copy album_tracks FROM 'C:\Users\wMogerty\Desktop\test.csv' WITH (format csv, header true);

Allerdings erhalte ich die folgenden Fehler und bin nicht sicher, warum:

Error: ERROR: syntax error at or near "\" Position: 1 SQLState: 42601 ErrorCode: 0

Vielen Dank für jede Hilfe

+0

'\ copy' ist' psql' metacommand, keine SQL-Anweisung - was ist Ihr Client? –

+0

@VaoTsun Ich benutze Squirrel SQL. –

+0

Wenn die Datei auf dem Server liegt, benutze 'copy' ohne Backslash, wenn die Datei auf der Client-Seite ist, weiß ich nicht, ob Squirrel eine Umgehung für' copy from stdin' hat –

Antwort

0

\copy ist ein Befehl im psql Client. Es wird vom PostgreSQL-Server nicht unterstützt. Es ist auch kein Teil von libpq und wird daher nicht von alternativen Clients wie PgAdmin-III usw. unterstützt.

Sie müssen die Datei selbst auf den Server kopieren und den Befehl COPY verwenden, um sie in die Datenbank zu laden. Oder wenn Ihr Client eine andere Schnittstelle zu der zugrunde liegenden COPY ... FROM STDIN-Funktion hat, die von \copy verwendet wird, wie eine "Importtabelle" oder "Massenlade" -Option, können Sie diese verwenden.

Ich frage mich, ob wir den Parser des PostgreSQL-Servers veranlassen sollten, Versuche zu finden, \copy als SQL-Abfrage auszuführen und einen besseren Fehler zu geben? Klingt nach einem großartigen Patch für einen neuen Entwickler.

Verwandte Themen