Origine :
psql -c "COPY (SELECT * FROM mytable WHERE ...) TO STDOUT" > mytable.copy
Destinataire :
psql -c "COPY mytable FROM STDIN" < mytable.copy
Cela suppose que mytable a le même schéma et le même ordre de colonnes dans la source et la destination. Si ce n'est pas le cas, vous pouvez essayer STDOUT CSV HEADER
et STDIN CSV HEADER
au lieu de STDOUT
et STDIN
, mais je n'ai pas essayé.
Si vous avez des déclencheurs personnalisés sur mytable, vous devrez peut-être les désactiver lors de l'importation :
psql -c "ALTER TABLE mytable DISABLE TRIGGER USER; \
COPY mytable FROM STDIN; \
ALTER TABLE mytable ENABLE TRIGGER USER" < mytable.copy