Ich bin ein Anfänger in psql und brauche etwas Hilfe. Wie kann ich eine lokale CSV in eine Remote-Datenbank laden?
Ich benutze den folgenden Befehl
\COPY test(user_id, product_id, value)
FROM '/Users/testuser/test.tsv' WITH DELIMITER '\t' CSV HEADER;
Dadurch wird jedoch die Datei auf der Remote-Datenbank durchsucht, während dies auf meinem lokalen PC erforderlich ist.
postgresql
postgresql-9.1
user22149
quelle
quelle
\copy
liest eine lokale Datei (es ist einpsql
Befehl und kann nur von innen verwendet werdenpsql
).COPY
(Beachten Sie jedoch das fehlende ``) liest die Datei auf dem Server.E'\t'
. Die Registerkarte sollte jedoch die Standardeinstellung sein, wenn Sie ohnehin kein Delim angeben.Antworten:
Hier gibt es zwei Möglichkeiten.
Wenn Sie psql verwenden, ist \ copy der richtige Weg, um die von Ihnen erwähnten Dinge zu tun.
Wenn Sie ein von Ihnen erstelltes Client-Programm verwenden, müssen Sie dies tun
Geben Sie dann die Datei ein (siehe Dokumentation zum Befehl COPY) .
Der Befehl KOPIEREN ist ein etwas seltsames Tier. Dies ist der einzige Befehl, den PostgreSQL derzeit von Quel unterstützt. Daher ist er nicht standardisiert und basiert auf einem anderen Paradigma als die übrigen Befehle. Aus diesem Grund ist es wichtig, die Dokumente zu diesem Befehl relativ sorgfältig zu lesen.
quelle