出典:
psql -c "COPY (SELECT * FROM mytable WHERE ...) TO STDOUT" > mytable.copy
目的地:
psql -c "COPY mytable FROM STDIN" < mytable.copy
これは、mytableのスキーマと列の順序がソースと宛先の両方で同じであることを前提としています。そうでない場合は、STDOUT CSV HEADER
を試すことができます。 およびSTDIN CSV HEADER
STDOUT
の代わりに およびSTDIN
、しかし私はそれを試していません。
mytableにカスタムトリガーがある場合は、インポート時にそれらを無効にする必要がある場合があります:
psql -c "ALTER TABLE mytable DISABLE TRIGGER USER; \
COPY mytable FROM STDIN; \
ALTER TABLE mytable ENABLE TRIGGER USER" < mytable.copy