Fuente:
psql -c "COPY (SELECT * FROM mytable WHERE ...) TO STDOUT" > mytable.copy
Destino:
psql -c "COPY mytable FROM STDIN" < mytable.copy
Esto supone que mytable tiene el mismo esquema y orden de columnas tanto en el origen como en el destino. Si este no es el caso, puede intentar STDOUT CSV HEADER
y STDIN CSV HEADER
en lugar de STDOUT
y STDIN
, pero no lo he probado.
Si tiene disparadores personalizados en mytable, es posible que deba deshabilitarlos en la importación:
psql -c "ALTER TABLE mytable DISABLE TRIGGER USER; \
COPY mytable FROM STDIN; \
ALTER TABLE mytable ENABLE TRIGGER USER" < mytable.copy