2016-04-15 141 views
1

我試圖將數據從一個數據庫複製到另一個數據庫。基本上,我有2個數據庫。Mysql將數據從一個數據庫複製到另一個WHERE

  • 客戶(其中有ID,姓名,出生日期,地址)
  • 全面的客戶(其中有ID,照片,簽名)(擴大,包括姓名,出生日期,地址)

所有客戶存儲在客戶數據庫(1000萬條記錄)中,但只有一些存儲在「完整客戶」數據庫中。 (500萬條記錄)。

我想將所有客戶記錄複製到當前沒有記錄的完整客戶數據庫中。

我的僞代碼如下編程,但我想知道如果我可以與MySQL

for customer in customers: 
    if customer.ID not in (select ID from fullcustomer) 
     insert customer into fullcustomer 

回答

1

爲此,您可以直接和你應該直接與MySQL做。

試試這個。我假設表是在同一個數據庫中 - 如果沒有,你應該爲表名添加數據庫名稱前綴。我還假定full_customer表中缺少的列已經存在(您已將它放在那裏)。

它基本上意味着:「使用ID進行比較,將來自表顧客的用戶的full_customer記錄插入表中,但這些記錄尚不存在。

INSERT INTO full_customer (ID, Name, DOB, Address) (
    SELECT ID, Name, DOB, Address FROM customer c 
    LEFT JOIN full_customer fc ON c.ID = fc.ID 
    WHERE fc.ID IS NULL 
) 

你應該做的是做一個全面的檢查beforehands,檢查所提供的SQL是否會選擇你真正要插入到full_customer表的客戶:

SELECT ID, Name, DOB, Address FROM customer c 
LEFT JOIN full_customer fc ON c.ID = fc.ID 
WHERE fc.ID IS NULL 

確保ID兩個表中的列都被索引,否則將永遠執行這些語句。

+0

這很好。謝謝您的幫助。正如你所提到的那樣,這個連接非常棒 - 需要大量的測試。 – Mark

相關問題