2011-08-13 64 views
3

我正在尋找一個解決方案,我的MySQL數據複製相關的問題。 我有一個數據庫DB1中包含一些數據的表TAB1。現在我希望將這些數據行中的一些數據行遷移到另一個表TAB2到另一個數據庫DB2。將數據從一個表複製到另一個表。數據庫是不同的和表結構不同

什麼是編寫MySQL服務器的這種SQL腳本的理想方式。我無法編寫java/php程序等,因爲我無法訪問代碼庫。

任何示例鏈接都會有所幫助。我知道這可以通過DBLink在Oracle中完成,但是如何在MySQL中完成。

感謝

+0

從一個數據庫中選擇數據並將其插入另一個數據庫中?沒有具體細節,很難說究竟該做什麼。 –

回答

6
insert into db2.table2 (field1,field2,..,fieldN) 
select field1,field2,..,fieldN from db1.table1 

編輯。如果你需要做兩個不同的數據庫之間的更新,這是正確的語法:

update 
db2.table2 as t2, 
db1.table1 as t1 
set 
t2.field1 = t1.field1, 
t2.field2 = t1.field2, 
t2.field3 = t1.field3 
where t1.id = t2.id 
+0

它足夠模糊工作:P –

+0

恕我直言,我的例子非常清楚。 :) –

+0

你永遠不知道他們在幕後發生了什麼樣的時髦表結構。 –

3

如果兩個數據庫都在同一臺服務器上那麼最簡單的方法是使用INSERT INTO... SELECT查詢

INSERT INTO 
    database2.table2 (c1, c2, c3) 
SELECT 
    c2, c4, MD5(c3) --you can choose only these columns that are needed as well as use functions to convert data to required format if needed 
FROM 
    database1.table1 
0

這將所有的數據從一個表複製到anothe r(MySQL)

INSERT INTO `databse_name`.`tablename_copy` 
SELECT * 
FROM `databse_name`.`tablename` ; 

如果設置了主鍵,會產生一些問題。請檢查主鍵重複錯誤

相關問題