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

Salin beberapa kolom file csv ke dalam tabel

Jika ini adalah tugas ad hoc

Buat tabel sementara dengan semua kolom di file input

create temporary table t (x1 integer, ... , x10 text)

Salin dari file ke dalamnya:

copy t (x1, ... , x10)
from '/path/to/my_file'
with (format csv)

Sekarang masukkan ke tabel definitif dari temp:

insert into my_table (x2, x5, x7, x10)
select x2, x5, x7, x10
from t

Dan lepaskan:

drop table t

Jika itu adalah tugas yang sering dilakukan

Gunakan file_fdw perpanjangan. Sebagai pengguna super:

create extension file_fdw;

create server my_csv foreign data wrapper file_fdw;

create foreign table my_csv (
    x1 integer,
    x2 text,
    x3 text
) server my_csv
options (filename '/tmp/my_csv.csv', format 'csv' )
;

Berikan izin pilih di atas meja kepada pengguna yang akan membacanya:

grant select on table my_csv to the_read_user;

Kemudian bila perlu baca langsung dari file csv seolah-olah itu tabel:

insert into my_table (x2)
select x2
from my_csv
where x1 = 2


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails 4 session.id kadang nihil

  2. Streaming PostgreSQL vs Replikasi Logis – Perbandingan

  3. Cara Mencadangkan dan Memulihkan Basis Data PostgreSQL

  4. Cara Membandingkan Kinerja PostgreSQL Menggunakan Sysbench

  5. Bagaimana cara menambahkan batasan kaskade yang dihapus?