web-dev-qa-db-ja.com

PostgreSQLからテーブルの一部をダンプする方法は?

マルチGbテーブル(特定のイベントのログを含む)を備えたPostgreSQLデータベースがあります。最新のイベントをアナリストに渡す必要があります。たとえば、先月のイベントだけが必要だとします。

たとえば、created_at > '2012-05-01'がある行のみのダンプを作成するにはどうすればよいですか?

6
Leonid Shevtsov

別の方法は COPY または \copypsqlコマンド)、次のようなもの:

COPY (SELECT * FROM big_table WHERE created_at > '2012-05-01') TO '/path/to/a/dump/file';
10
Milen A. Radev

PSQLユーザーにファイルへの書き込み権限がない場合は、次のようにすることができます。

psql -c "COPY (SELECT * FROM big_table WHERE created_at > '2012-05-01') TO STDOUT;" -h localhost -d my_database -U my_user > path/to/file
2
learner

psql -c "COPY (SELECT * FROM my_table WHERE created_at > '2012-05-01') TO STDOUT;" source_db | psql -c "COPY my_table FROM STDIN;" target_db

2
gilad mayani