Saya seorang pemula dalam psql dan butuh bantuan. Bagaimana saya bisa memuat CSV lokal ke DB jarak jauh?
Saya menggunakan perintah berikut
\COPY test(user_id, product_id, value)
FROM '/Users/testuser/test.tsv' WITH DELIMITER '\t' CSV HEADER;
tetapi ini mencari file pada DB jarak jauh sementara saya perlu melakukannya pada PC lokal saya.
postgresql
postgresql-9.1
pengguna22149
sumber
sumber
\copy
membaca file lokal (ini adalahpsql
perintah dan hanya dapat digunakan dari dalampsql
).COPY
namun (perhatikan, `` yang hilang) akan membaca file di server.E'\t'
. Tetapi tab harus menjadi default jika Anda tidak menentukan batasan.Jawaban:
Ada dua kemungkinan di sini.
Jika Anda menggunakan psql, maka \ copy adalah cara yang benar untuk melakukan sesuatu seperti yang Anda sebutkan.
Jika Anda menggunakan program klien yang Anda tulis, maka Anda perlu melakukannya
Dan kemudian masukkan file (lihat dokumentasi pada perintah COPY .
Perintah COPY adalah binatang yang sedikit aneh. Ini adalah satu perintah yang PostgreSQL saat ini dukung dari Quel dan karena itu keduanya tidak standar, dan didasarkan pada sesuatu dari paradigma yang berbeda dari perintah lainnya. Karena alasan ini, penting untuk membaca dokumen dengan relatif hati-hati pada perintah ini.
sumber