Quelle:
psql -c "COPY (SELECT * FROM mytable WHERE ...) TO STDOUT" > mytable.copy
Ziel:
psql -c "COPY mytable FROM STDIN" < mytable.copy
Dies setzt voraus, dass mytable sowohl in der Quelle als auch im Ziel das gleiche Schema und die gleiche Spaltenreihenfolge hat. Wenn dies nicht der Fall ist, können Sie es mit STDOUT CSV HEADER
versuchen und STDIN CSV HEADER
statt STDOUT
und STDIN
, aber ich habe es nicht ausprobiert.
Wenn Sie benutzerdefinierte Trigger auf mytable haben, müssen Sie diese möglicherweise beim Importieren deaktivieren:
psql -c "ALTER TABLE mytable DISABLE TRIGGER USER; \
COPY mytable FROM STDIN; \
ALTER TABLE mytable ENABLE TRIGGER USER" < mytable.copy