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

Lệnh COPY:chỉ sao chép các cột cụ thể từ csv

Xử lý trước tệp CSV hoặc (những gì tôi có thể sẽ làm) nhập vào bản sao tạm thời của bảng đích và INSERT chỉ các cột được chọn trong bước thứ hai:

CREATE TEMP TABLE tmp AS SELECT * FROM target_table LIMIT 0;
ALTER TABLE tmp ADD COLUMN etra_column1 text
             ,  ADD COLUMN etra_column2 text;  -- add excess columns
COPY tmp FROM '/path/tp/file.csv';

INSERT INTO target_table (col1, col2, col3)
SELECT col1, col2, col3 FROM tmp  -- only reelvant columns
WHERE  ...  -- optional, to also filter rows

Bảng tạm thời sẽ tự động bị xóa vào cuối phiên. Nếu quá trình xử lý mất nhiều thời gian hơn, hãy sử dụng bảng thông thường.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để chạy ứng dụng python và postgres trong một vùng chứa docker?

  2. Xóa bằng LEFT JOIN

  3. Truy vấn PostgreSQL để trả về kết quả dưới dạng danh sách được phân tách bằng dấu phẩy

  4. Xuất cơ sở dữ liệu PostgreSQL với phpPgAdmin

  5. Trích xuất giây từ bảng khoảng thời gian / Truyền bản ghi sang khoảng thời gian?