【发布时间】:2014-02-08 20:10:48
【问题描述】:
我正在尝试使用“OPENQUERY”将记录从 MS SQL Server 插入 MySQL 数据库,但我想要做的是忽略重复键消息。因此,当查询遇到重复时,请忽略它并继续。
我可以做些什么来忽略重复项?
这是我正在做的事情:
- 使用“OpenQuery”从 MySQL 中提取记录以定义 MySQL“A.record_id”
- 从这里将这些记录加入到 MS SQL Server 中的“具有特定条件而不是直接 ID”的记录中,我在 SQL Server 中找到了一个新的相关“B.new_id”记录标识符。
- 我想将找到的结果插入 MySQL 中的新表中,例如 A.record_id, B.new_id 在新表中,我将 A.record_id 设置为该表的主键。
问题是,有时将表 A 连接到表 B 时,我会在表 B 中找到 2+ 条记录,这些记录与我正在寻找的条件相匹配,这会导致我的数据集中的值 A.record_id 在插入之前达到 2 次以上进入导致问题的表A。注意我可以使用聚合函数来消除记录。
【问题讨论】:
-
@MartinSmith 我从我的问题中删除了令人困惑的部分。我尝试使用 IGNORE_DUP_KEY 但出现语法错误。我不知道我是否可以将它与 openquery 一起使用。这是我的用例 INSERT IGNORE_DUP_KEY OPENQUERY
-
IGNORE_DUP_KEY是索引的属性。不是您在查询中使用的关键字。除非您插入到 SQL Server,否则它是不相关的,因此要求澄清传输方向。
标签: mysql sql-server sql-insert openquery