PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Impor CSV PostgreSQL dari baris perintah

Solusi dalam jawaban yang diterima hanya akan berfungsi di server dan ketika pengguna yang menjalankan kueri akan memiliki izin untuk membaca file seperti yang dijelaskan dalam jawaban SO ini.

Jika tidak, pendekatan yang lebih fleksibel adalah mengganti COPY . SQL perintah dengan psql "meta-command" bernama \copy yang mengambil semua opsi yang sama dengan COPY "asli", tetapi dijalankan di dalam klien (tanpa perlu ; di akhir):

psql -c "\copy tbname FROM '/tmp/the_file.csv' delimiter '|' csv"

Sesuai dengan dokumen, \copy perintah:

Melakukan salinan frontend (klien). Ini adalah operasi yang menjalankan perintah SQL COPY, tetapi alih-alih server membaca atau menulis file yang ditentukan, psql membaca atau menulis file dan merutekan data antara server dan sistem file lokal. Ini berarti bahwa aksesibilitas dan hak istimewa file adalah milik pengguna lokal, bukan server, dan tidak diperlukan hak pengguna super SQL.

Selain itu, jika the_file.csv berisi header di baris pertama, dapat dikenali dengan menambahkan header di akhir perintah di atas:

psql -c "\copy tbname FROM '/tmp/the_file.csv' delimiter '|' csv header"


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Replikasi Londiste dengan PostgreSQL 9.0

  2. Fitur Metode Pencadangan PostgreSQL di AWS S3

  3. Ubah Tanggal menjadi Hari Julian di PostgreSQL

  4. Cara Mengaktifkan SSL di PostgreSQL

  5. Cara mengubah array json menjadi baris di postgres