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

标签 mysql database

我有 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/

相关文章:

mysql - 从应用程序创建迁移

php - 函数找不到变量?

mysql - 执行多个.SQL 文件

mysql - 使用来自不同社交网络的数据实现新闻源

mysql - 使用基于另一列中的值的查询将 mysql 表中的列拆分为多列

mysql - 表连接 - 如果一个表没有对应的记录,则返回所有记录

java - 在 varchar 列中存储快速编码数据

sql - 使用连接等价查询?

database - 存储用户提交的项目名称(及其同义词)的最佳方式

java - 具有基于文件的数据库的 h2 集群