En fait, vous ne pouvez pas exécuter \copy
via pg_query()
. Ce n'est pas une commande SQL . C'est une méta-commande de psql client.
Là, vous pouvez exécuter :
\copy data1 FROM 'data1.txt' WITH CSV HEADER DELIMITER AS ',' QUOTE AS '^'
Ou exécutez la commande shell :
psql mydb -c "\copy data1 FROM 'data1.txt'
WITH CSV HEADER DELIMITER AS ',' QUOTE AS '^'"
Notez les citations. Les valeurs doivent être entre guillemets simples dans PostgreSQL :'value'
.
Les guillemets doubles sont pour les identifiants - et ne sont réellement nécessaires que pour les identifiants avec des majuscules ou des caractères illégaux ou pour les mots réservés :"My table"
.