Tatsächlich können Sie \copy
nicht ausführen über pg_query()
. Es ist kein SQL-Befehl . Es ist ein Meta-Befehl von psql Kunde.
Dort können Sie ausführen:
\copy data1 FROM 'data1.txt' WITH CSV HEADER DELIMITER AS ',' QUOTE AS '^'
Oder führen Sie den Shell-Befehl aus:
psql mydb -c "\copy data1 FROM 'data1.txt'
WITH CSV HEADER DELIMITER AS ',' QUOTE AS '^'"
Beachten Sie die Anführungszeichen. Werte müssen in PostgreSQL in einfache Anführungszeichen gesetzt werden:'value'
.
Doppelte Anführungszeichen sind für Bezeichner - und werden eigentlich nur für Bezeichner mit Großbuchstaben oder unzulässigen Zeichen oder für reservierte Wörter benötigt:"My table"
.