2013-06-18 97 views
1

特定記錄我有2個數據庫:導入從一個數據庫到另一個

DB1

客戶(列:customernr,名稱,ADRESS,db2clientid)

發票(列:invoicenr ,customernr,totalamount,taxamount, createdate)

DB2

tblinvoices(列:invoiceid,使用ContactID,合計金額,稅款,日期)

我想用一個cronjob導入從DB2 tblinvoices發票,發票DB1。我只想從db1/customers/db2clientid = db2/tblinvoices/contactid的客戶那裏進口發票。

我想通過腳本(通過MySQL)運行它,所以我可以創建一個每小時運行一次的cronjob。

我最大的擔心是如何只導入新記錄。如何管理不是每個cron運行的完整表都被導入,但只有那些不在DB1中的記錄呢?

我可以簡單地寫SQL命令,但是對於這個我絕對不知道從哪裏開始尋找。

有人能指出正確的方向嗎?使用哪些參數?

+0

你有與相同previledges兩個數據庫相同的用戶憑據? –

回答

1

如果您對兩個數據庫都有相同的user credentialssimilar previledges,您可以按照以下步驟操作。

運行query1以仔細檢查是否選擇了需要進入db1的正確記錄。一旦確認使用下面的query2插入這些記錄。

查詢#1

SELECT i.* 
     FROM db2.tblinvoices i 
     LEFT JOIN db1.invoices db1inv on db1inv.invoicenr=i.invoiceid 
     AND db1inv.contactid=i.customernr 
     WHERE db1.invoicenr IS NULL 

查詢#2

INSERT INTO db1.invoices (
    SELECT i.* 
    FROM db2.tblinvoices i 
    LEFT JOIN db1.invoices db1inv on db1inv.invoicenr=i.invoiceid 
    AND db1inv.contactid=i.customernr 
    WHERE db1.invoicenr IS NULL) 
相關問題