sql >> データベース >  >> RDS >> PostgreSQL

Postgresでテーブルの行のサブセットをあるデータベースから別のデータベースにコピーする最良の方法は何ですか?

    出典:

    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
    


    1. 同じテーブルに同じ列名を持つ複数の値をエコーし​​ます

    2. 特定の条件で重複を削除する方法

    3. MySQL:このための単純なカテゴリを表示するにはどうすればよいですか?

    4. SQLServerデータベースを文書化する方法