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

Nhập tệp CSV đã nén vào PostgreSQL

Có một mẹo cũ là sử dụng một đường ống có tên (hoạt động trên Unix, không biết về Windows)

  • tạo một đường ống có tên:mkfifo /tmp/omyfifo
  • ghi nội dung tệp vào đó:zcat mycsv.csv.z > /tmp/omyfifo &
  • [từ psql] copy mytable(col1,...) from '/tmp/omyfifo'
  • [khi hoàn tất]:rm /tmp/omyfifo

zcat ở phía sau sẽ chặn cho đến khi có người đọc (ở đây:COPY lệnh) sẽ bắt đầu đọc và nó sẽ kết thúc ở EOF. (hoặc nếu người đọc đóng đường ống)

Bạn thậm chí có thể bắt đầu nhiều cặp pipe + zcat, sẽ được chọn bởi nhiều COPY câu lệnh trong tập lệnh sql của bạn.

Điều này sẽ hoạt động từ pgadmin, nhưng quá trình 50o (+ zcat) phải có trên máy nơi máy chủ DBMS chạy.

BTW:một thủ thuật tương tự sử dụng netcat có thể được sử dụng để đọc tệp từ một máy từ xa (tất nhiên là phải ghi tệp vào ổ cắm mạ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. ngủ đông không thể nhận giá trị trình tự tiếp theo

  2. fe_sendauth:không cung cấp mật khẩu

  3. Cách liệt kê tất cả người dùng trong PostgreSQL

  4. INITCAP () - Chuyển đổi sang Caps ban đầu trong PostgreSQL

  5. Giám sát PostgreSQL cần thiết - Phần 1