我有 2 个数据库:
DB1
customers (columns: customernr, name, adress, db2clientid)
invoices (columns: invoicenr, customernr, totalamount, taxamount, createdate)
DB2
tblinvoices (columns: invoiceid, contactid, total, tax, date)
我想使用 cronjob 将发票从 DB2 tblinvoices
导入到 DB1 中的发票。我只想从 db1/customers/db2clientid = db2/tblinvoices/contactid
的客户导入发票。
我想通过脚本(通过 MySQL)运行它,因此我可以创建一个每小时运行一次的 cronjob。
我最关心的是如何只导入新记录。如何管理不是每个 cron 运行整个表都被导入,而是只导入尚未在 DB1 中的记录?
我可以编写简单的 SQL 命令,但有了这个我完全不知道从哪里开始寻找。
有人能指出正确的方向吗?使用哪些参数?
最佳答案
如果您对两个数据库具有相同的用户凭据
和相似的特权
,您可以按照以下步骤操作。
运行 query1 以仔细检查它是否选择了需要进入 db1 的正确记录。确认后使用下面的查询 2 插入这些记录。
查询#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)
关于mysql - 将特定记录从一个数据库导入到另一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17170010/