データベース - postgreSQL - テーブルコピー


 クラウディア


1. 概要
2. コピー
6. 参考サイト

1. 概要

 表題に少し付け加えます。  同じデータベース内で、テーブルをコピーするのは、比較的簡単。  「SQL」だけで、いけるかと思います。  ここでやりたいのは、別々のデータベースに、片方のデータベース内のあるテーブルを構造・データはそのままに、別のデータベースへ移植したいのです。  ついでに、テーブル名も変更しちゃいたい・・・というわけなんですな。

2. コピー

 コマンド3つで、できるようです。  データベースを「db1」「db2」、テーブル名を「old_table」「new_table」として。

pg_dump -h localhost -U postgres -d db1 -t public.old_table > dump.sql

sed 's/old_table/new_table/g' dump.sql > dump_new.sql

psql -h localhost -U postgres -d db2 -f dump_new.sql
 「;」で連結して、1発でもできますが、慎重にやるには、3回に分けた方がよさそうです。

6. 参考サイト

 本ページは、「ChatGPT」くんを参考にさせていただきました。