Fonte:
psql -c "COPY (SELECT * FROM mytable WHERE ...) TO STDOUT" > mytable.copy
Destinazione:
psql -c "COPY mytable FROM STDIN" < mytable.copy
Ciò presuppone che mytable abbia lo stesso schema e l'ordine delle colonne sia nell'origine che nella destinazione. In caso contrario, puoi provare STDOUT CSV HEADER
e STDIN CSV HEADER
invece di STDOUT
e STDIN
, ma non l'ho provato.
Se hai dei trigger personalizzati su mytable, potresti dover disabilitarli durante l'importazione:
psql -c "ALTER TABLE mytable DISABLE TRIGGER USER; \
COPY mytable FROM STDIN; \
ALTER TABLE mytable ENABLE TRIGGER USER" < mytable.copy