PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Fonction COPY dans PostgreSQL

Il semble que vous soyez confus par la notation de chemin de fichier Linux par rapport à Windows. Ce que vous avez là est un chemin Linux ancré à la racine. Windows utilise des lettres de lecteur, que vous pouvez également spécifier lorsque vous exécutez Windows.

Si vous utilisez la notation Windows, veillez à échapper les barres obliques inverses si vous n'utilisez pas standard_conforming_strings = on - qui est la valeur par défaut dans Postgres 9.1 ou version ultérieure, mais pas dans les anciennes versions. Comme :

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

Avec standard_conforming_strings = on vous pouvez simplement écrire :

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

Notez qu'un serveur PostgreSQL Windows comprend également la notation de chemin par défaut avec des barres obliques au lieu des barres obliques inverses.

Pour SQL COPY FROM / TO vous pouvez utiliser n'importe quel chemin que le propriétaire du serveur traite (postgres par défaut) est autorisé à lire/écrire.

Pour le \copy meta commande du client psql les permissions de l'utilisateur local actuel s'appliquent.