PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Sao chép một vài cột của tệp csv vào bảng

Nếu đó là một nhiệm vụ đặc biệt

Tạo một bảng tạm thời với tất cả các cột trong tệp đầu vào

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

Sao chép từ tệp vào đó:

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

Bây giờ hãy chèn vào bảng cuối cùng từ tạm thời:

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

Và thả nó xuống:

drop table t

Nếu đó là công việc thường xuyên

Sử dụng file_fdw sự mở rộng. Là siêu người dùng:

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' )
;

Cấp quyền lựa chọn trên bảng cho người dùng sẽ đọc nó:

grant select on table my_csv to the_read_user;

Sau đó, bất cứ khi nào cần thiết, hãy đọc trực tiếp từ tệp csv như thể nó là một bảng:

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. Cách IsFinite () hoạt động trong PostgreSQL

  2. Thêm khoảng thời gian vào dấu thời gian bằng cách sử dụng Phân đoạn Ecto

  3. kết nối với máy chủ postgres trên google compute engine

  4. SQL Transpose các hàng dưới dạng cột

  5. Một hệ thống bảo mật cho ứng dụng, tổng hợp kết nối và PostgreSQL - Trường hợp cho LDAP