Zdroj:
psql -c "COPY (SELECT * FROM mytable WHERE ...) TO STDOUT" > mytable.copy
Cíl:
psql -c "COPY mytable FROM STDIN" < mytable.copy
To předpokládá, že mytable má stejné schéma a pořadí sloupců ve zdroji i v cíli. Pokud tomu tak není, můžete zkusit STDOUT CSV HEADER
a STDIN CSV HEADER
místo STDOUT
a STDIN
, ale nezkoušel jsem to.
Pokud máte v mytable nějaké vlastní spouštěče, možná je budete muset při importu zakázat:
psql -c "ALTER TABLE mytable DISABLE TRIGGER USER; \
COPY mytable FROM STDIN; \
ALTER TABLE mytable ENABLE TRIGGER USER" < mytable.copy