PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

COPY-Funktion in PostgreSQL

Es sieht so aus, als ob Sie durch die Notation von Linux- und Windows-Dateipfaden verwirrt sind. Was Sie dort haben, ist ein Linux-Pfad, der mit root verankert ist. Windows verwendet Laufwerksbuchstaben, die Sie auch unter Windows angeben können.

Wenn Sie die Windows-Notation verwenden, achten Sie darauf, dass Sie Backslashes maskieren müssen wenn Sie standard_conforming_strings =on - Dies ist die Standardeinstellung in Postgres 9.1 oder höher, aber nicht in älteren Versionen. Wie:

COPY data_table from E'C:\\tmp\\outputdata.csv' WITH ...

Mit standard_conforming_strings =on Sie können einfach schreiben:

COPY data_table from 'C:\tmp\outputdata.csv' WITH ...

Beachten Sie, dass ein PostgreSQL-Windows-Server auch die standardmäßige Pfadnotation mit Schrägstrichen anstelle von Backslashes versteht.

Für SQL COPY FROM / TO Sie können jeden Pfad verwenden, den der Eigentümer des Servers verarbeitet (postgres standardmäßig) hat die Berechtigung zum Lesen / Schreiben.

Für den \copy meta-Befehl des psql-Clients gelten die Berechtigungen des aktuellen lokalen Benutzers.