Nguồn:
psql -c "COPY (SELECT * FROM mytable WHERE ...) TO STDOUT" > mytable.copy
Điểm đến:
psql -c "COPY mytable FROM STDIN" < mytable.copy
Điều này giả sử bảng của tôi có cùng một lược đồ và thứ tự cột ở cả nguồn và đích. Nếu không đúng như vậy, bạn có thể thử STDOUT CSV HEADER
và STDIN CSV HEADER
thay vì STDOUT
và STDIN
, nhưng tôi chưa thử.
Nếu bạn có bất kỳ trình kích hoạt tùy chỉnh nào trên mytable, bạn có thể cần phải tắt chúng khi nhập:
psql -c "ALTER TABLE mytable DISABLE TRIGGER USER; \
COPY mytable FROM STDIN; \
ALTER TABLE mytable ENABLE TRIGGER USER" < mytable.copy