Właściwie nie możesz uruchomić \copy
przez pg_query()
. To nie jest polecenie SQL . Jest to metapolecenie psql klienta.
Tam możesz wykonać:
\copy data1 FROM 'data1.txt' WITH CSV HEADER DELIMITER AS ',' QUOTE AS '^'
Lub uruchom polecenie powłoki:
psql mydb -c "\copy data1 FROM 'data1.txt'
WITH CSV HEADER DELIMITER AS ',' QUOTE AS '^'"
Zwróć uwagę na cytaty. Wartości muszą być ujęte w pojedynczy cudzysłów w PostgreSQL:'value'
.
Podwójne cudzysłowy dotyczą identyfikatorów - i są faktycznie potrzebne tylko dla identyfikatorów z dużymi lub niedozwolonymi znakami lub dla słów zastrzeżonych:"My table"
.