【问题标题】:Link tables in SQL Server from MySQL using OPENQUERY to get just updated records使用 OPENQUERY 从 MySQL 链接 SQL Server 中的表以获取刚刚更新的记录
【发布时间】:2014-08-05 19:20:29
【问题描述】:

我正在将表从 mysql 链接/复制到 SQL Server。我已经设置了链接服务器,并且可以复制表格。我需要知道如何只更新 mysql 数据库中的新记录,因为一张表上有 400,000 条记录。这是我的查询

INSERT INTO kiosk_test.dbo.CDS_STU_CLASS 
FROM openquery(MYSQL, 'SELECT * FROM mycds.CDS_STU_CLASS')

您将如何使用存储过程或查询来仅更新新记录?我已经尝试过尽我所能进行研究,但没有真正的答案。

【问题讨论】:

  • 请使用代码格式化工具。请详细说明上面执行的 sql 的实际输出是什么,说明期望的结果是什么,以及您为达到期望的结果所做的尝试。
  • “新记录”是如何确定的?
  • 新记录每5分钟从我们区办公室更新到mysql数据库
  • 与您的问题无关,但您可能希望使用 ms-sql 临时表从 mysql 接收记录。这一切都取决于您希望如何处理同时使用此查询/过程/最终将是什么。
  • mysql表中有datetime字段可以用来过滤结果吗?

标签: mysql sql sql-server


【解决方案1】:

来自Do I have to use OpenQuery to query a MySQL Linked Server from SQL Server?

我觉得你可以把openquery(MYSQL, 'SELECT * FROM mycds.CDS_STU_CLASS')改成mycds..CDS_STU_CLASS

那么也许这会起作用:

INSERT INTO kiosk_test.dbo.CDS_STU_CLASS 
(SELECT _columns_ 
 FROM mycds..CDS_STU_CLASS new
 LEFT JOIN kiosk_test..CDS_STU_CLASS old 
     ON new.recordID = old.recordID
 WHERE old.recordID IS NULL)

未经测试...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-17
    • 2011-07-31
    • 2017-07-04
    • 1970-01-01
    • 2011-06-17
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多