COPY tbl FROM STDIN;
tidak didukung oleh pgAdmin.
Anda mendapatkan kesalahan sintaks biasa karena Postgres mendapatkan data sebagai kode SQL.
Empat solusi yang mungkin:
1. Gunakan multi-baris INSERT
sebagai gantinya:
INSERT INTO beer(name, tags, alcohol, brewery, id, brewery_id, image)
VALUES
('Bons Voeux', 'blonde', 9.5, 'Brasserie Dupont', 250, 130, 'generic.png')
, ('Boerke Blond', 'blonde', 6.8, 'Brouwerij Angerik', 233, 287 'generic.png')
;
Perhatikan sintaks (SQL) yang berbeda untuk nilai sebagai string atau literal numerik.
Anda dapat menghasilkan data dengan pg_dump
menggunakan --inserts
. Terkait:
- Ekspor baris tertentu dari tabel PostgreSQL sebagai skrip INSERT SQL
2. Atau panggil skrip Anda di baris perintah menggunakan psql
. Sebagai pengguna sistem postgres
:
psql -f beer.sql -U my_login_role -d db_name
Basis data (-d
) dan peran login (-U
untuk "Pengguna") dapat dihilangkan jika defaultnya ok. Contoh sintaks:
- Buat database Postgres menggunakan file batch dengan [template],[encoding],[owner] dan file .sql
Pastikan ada penanda akhir data (\.
) untuk text
default format. (Anda memilikinya.) Panduan:
Akhir data dapat diwakili oleh satu baris yang berisi justbackslash-period (
\.
). Penanda akhir data tidak diperlukan saat membaca dari file, karena akhir file berfungsi dengan baik; ini hanya diperlukan saat menyalin data ke atau dari aplikasi klien menggunakan protokol klien pra-3.0.
3. Atau pindahkan data Anda ke file terpisah di server , ucapkan 'beer_data.csv' dan gunakan COPY .. FROM 'filename'
dalam skrip Anda:
COPY beer (name, tags, alcohol, brewery, id, brewery_id, image)
FROM '/path/to/beer_data.csv';
Yang bekerja dengan cara apa pun. Anda membutuhkan hak pengguna super, meskipun. Panduan:
[...]
COPY
penamaan file atau perintah hanya diperbolehkan untuk superusers atau pengguna database yang diberikan salah satu peran defaultpg_read_server_files
,pg_write_server_files
, ataupg_execute_server_program
, karena memungkinkan membaca atau menulis file apa pun atau menjalankan program yang memiliki hak istimewa untuk diakses oleh server.
(pg_read_server_files
, pg_write_server_files
dan pg_execute_server_program
baru di Postgres 11.)
4. Atau baca file lokal ke klien dengan perintah meta psql \copy
. Lihat:
- Bagaimana cara memperbarui baris yang dipilih dengan nilai dari file CSV di Postgres?
- Cara menggunakan \copy di postgresql dengan pgadmin4