将特定记录从一个数据库导入另一个

时间:2013-06-18 13:22:02

标签: mysql database

我有2个数据库:

DB1

  

客户(栏目:customernr,name,adress,db2clientid)

     

发票(列:invoicenr,customernr,totalamount,taxamount,   CREATEDATE)

DB2

  

tblinvoices(列:invoiceid,contactid,total,tax,date)

我想使用cronjob将DB2 tblinvoices的发票导入DB1中的发票。我只想从db1/customers/db2clientid = db2/tblinvoices/contactid

的客户导入发票

我想通过脚本(通过MySQL)运行它,所以我可以创建一个每小时运行一次的cronjob。

我最关心的是如何只导入新记录。如何管理不是每个cron运行整个表都被导入,但只有不在DB1中的记录呢?

我可以简单地编写SQL命令,但有了这个我绝对不知道从哪里开始查找。

有人能指出正确的方向吗?使用哪些参数?

1 个答案:

答案 0 :(得分:1)

如果两个数据库都有user credentials similar 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)