Källa:
psql -c "COPY (SELECT * FROM mytable WHERE ...) TO STDOUT" > mytable.copy
Destination:
psql -c "COPY mytable FROM STDIN" < mytable.copy
Detta förutsätter att mytable har samma schema och kolumnordning i både källan och destinationen. Om så inte är fallet kan du prova STDOUT CSV HEADER
och STDIN CSV HEADER
istället för STDOUT
och STDIN
, men jag har inte provat det.
Om du har några anpassade utlösare på mytable kan du behöva inaktivera dem vid import:
psql -c "ALTER TABLE mytable DISABLE TRIGGER USER; \
COPY mytable FROM STDIN; \
ALTER TABLE mytable ENABLE TRIGGER USER" < mytable.copy