我有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命令,但有了这个我绝对不知道从哪里开始查找。
有人能指出正确的方向吗?使用哪些参数?
答案 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)