PostgreSQLを使用してデータベース間でデータを転送する 質問する

PostgreSQLを使用してデータベース間でデータを転送する 質問する

別のデータベースからデータを転送する必要があります。古いデータベースは paw1.movi​​esDB と呼ばれ、新しいデータベースは paw1 です。各テーブルのスキーマは次のとおりです。

Awards (name of the table)(new DB)
Id [PK] Serial           Award

Nominations (name of the table) (old DB)
Id [PK] Serial           nominations

古いデータベースから新しいデータベースにデータをコピーするにはどうすればよいですか?

ベストアンサー1

まさにこのことを実行したかったので、ここでレシピを投稿することにしました。ここでは、両方のデータベースが同じサーバー上にあることを前提としています。

まず、古いデータベースから新しいデータベースにテーブルをコピーします。コマンドラインで:

pg_dump -U postgres -t <old_table> <old_database> | psql -U postgres -d <new_database>

次に、コピーしたテーブルの権限を新しいデータベースのユーザーに付与します。psql にログインします。

psql -U postgres -d <new_database>

ALTER TABLE <old_table> OWNER TO <new_user>;

\q

この時点では、新しいデータベースにコピーされたテーブルには、古いデータベースの名前が残っています<old_table>。データを別の場所、たとえば に移動したい場合は<new_table>、通常の SQL クエリを使用できます。

INSERT INTO <new_table> (field1, field2, field3) 
SELECT field1, field2, field3 from <old_table>;

終わり!

おすすめ記事