データベースからデータをコピーする方法の簡単な例が必要ですDB1テーブルT1データベースDB2テーブルT2。
T2はT1(同じ列名、プロパティ。データが異なる)のような同一の構造を持ちます。DB2はDB1と同じサーバーで実行されますが、ポートは異なります。
2つのデータベースが2つの異なるサーバーインスタンス上にある場合は、db1
からCSVでエクスポートしてから、db2
にデータをインポートできます。
COPY (SELECT * FROM t1) TO '/home/export.csv';
次に、db2
にロードし直します。
COPY t2 FROM '/home/export.csv';
ここでも、2つの異なるデータベースインスタンスの2つのテーブルは同じ構造である必要があります。
コマンドラインツール:pg_dumpとpsqlを使用すると、この方法でも実行できます:
pg_dump -U postgres -t t1 db1 | psql -U postgres -d db2
pg_dump
とpsql
の両方にコマンドライン引数を指定して、サーバーのアドレスやポートを指定できます。
別のオプションは、次のような外部ツールを使用することです: openDBcopy 、テーブルの移行/コピーを実行します。
あなたはこれを試すことができます-
pg_dump -t table_name_to_copy source_db | psql target_db
SQL Workbench/Jをお勧めします。それはデータパンパーである素晴らしい機能を持っています。列ID
をスキップすることを選択できます。この画像( Data Pumper in action )は、GUIモードを使用する場合の例です。コンソールモードを使用する場合は、以下のコード。
WbCopy -sourceProfile=source
-sourceGroup=DB1
-targetProfile=target
-targetGroup=DB2
-targetTable=table2
-sourceTable=table1
-columns='sales_code/sales_code, store_sid/store_sid, pos_id/pos_id'
-ignoreIdentityColumns=false
-deleteTarget=true
-continueOnError=true
-commitEvery=1000;