我需要簡單的例子,如何從數據庫DB1表數據T1複製到數據庫DB2 表 T2 。PostgreSQL的:如何將數據從一個數據庫表複製到另一個數據庫
T2具有像T1相同的結構(相同的列名,屬性,只是不同的數據) DB2像DB1同一個服務器上運行,但不同的端口上。
我需要簡單的例子,如何從數據庫DB1表數據T1複製到數據庫DB2 表 T2 。PostgreSQL的:如何將數據從一個數據庫表複製到另一個數據庫
T2具有像T1相同的結構(相同的列名,屬性,只是不同的數據) DB2像DB1同一個服務器上運行,但不同的端口上。
在兩個數據庫是在兩個不同的服務器實例的情況下,你可以在CSV從db1
導出,然後在db2
導入數據:
COPY (SELECT * FROM t1) TO '/home/export.csv';
,然後加載回db2
:
COPY t2 FROM '/home/export.csv';
此外,兩個不同數據庫實例上的兩個表必須具有相同的結構。
使用命令行工具:的pg_dump和psql,你可以做,即使在這樣:
pg_dump -U postgres -t t1 db1 | psql -U postgres -d db2
您可以指定命令行參數都pg_dump
和psql
指定的地址和/或端口服務器 。
另一種選擇是使用外部工具,例如:openDBcopy來執行表的遷移/複製。
第一條語句在Postgres中不受支持,您不能像這樣在不同的數據庫中引用表。 (再說'db2.t2'在_schema_'db2',而不是「數據庫」 DB2引用表) –
看看更新的答案,我誤解了問題。 – aleroot
第一條語句將** **不跨數據庫的工作(只跨_schema_這就是你的發言做) –
我建議SQL Workbench/J。它具有很好的功能,即Data Pumper。您可以選擇跳過列ID
。如果我使用GUI模式,這個圖像(Data Pumper in action)就是一個例子。 下面的代碼,如果我使用控制檯模式。
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;
這個答案非常廣泛,並且有垃圾郵件的味道。請編輯以提供更具體的問題答案。考慮使用代碼來描述解決提問者的問題。 –
我在GUI模式下使用該功能。這就是我發佈屏幕截圖而不是代碼的原因。然而,如果我使用控制檯模式,我已經添加了代碼示例。 –
您編輯的答案看起來不錯。你的頭像可能會冒犯人們。 –
使用外國數據包裝。 –