问题标签 [sql-merge]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2662 浏览

sql - SQL Merge 无法插入然后更新目标表中的两个相同行

我正在尝试在以下脚本中使用 SQL Merge 合并两个表:

我要做的是从 to 插入新记录"Target""Source"记录"Matched"将在"Source"表中更新。我面临的问题是,有时,源表有两个相同的"Not Matched Rows". 根据脚本逻辑和我的要求,它应该插入第一个"Not Matched",然后第二个“不匹配”需要被视为更新,而不是插入,因为它现在是"Matched"一行,因为我们已经插入了第一个记录。

似乎我的合并作为一个批量脚本工作,当脚本到达第二个相同的行时,第一个插入不会被注意到。这是“SQL Merge”的工作方式还是我的脚本?

谢谢

0 投票
2 回答
520 浏览

h2 - H2 MERGE:未找到列

我有下表:

然后我创建一个PreparedStatement并为索引 1 提供一个值:

H2 失败并出现此错误:

我知道 H2 不喜欢version + 1右侧,但不清楚如何为新行和version + 1现有行返回 0。有没有比使用select带有 a 的语句更简单的方法union

0 投票
3 回答
5924 浏览

sql - 将 Oracle MERGE 语句迁移到 PostgreSQL UPSERT 语句

您能帮我将以下 Oracle语句转换为在 PostgreSQL 9.3 数据库中使用MERGE的有效语句吗?UPSERT

0 投票
2 回答
562 浏览

sql - SQL Merge - 我该如何优化它?

表 A(要合并的表)有 90,000 行表 B(源表)有 3,677 行我希望这会很快合并,但需要 30 分钟(并且还在计数)。如何优化它以更快地运行?

AS BEGIN -- 添加了 SET NOCOUNT ON 以防止额外的结果集 -- 干扰 SELECT 语句。设置无计数;

结尾

更新 我能够改进现在只需几秒钟即可运行的存储过程。我加入了临时表而不是 bb02_fundraiser 表,并删除了 ON 子句中的子查询。

我现在意识到 Merge 不是必需的,我可以使用 Update 代替,但我现在可以接受,因为在重构中可能很快需要 INSERT。

如果 OBJECT_ID('tempdb..#fids') 不是 NULL DROP TABLE #fids,则更新存储过程如下

0 投票
1 回答
2050 浏览

sql - 如何合并插入临时表中的列和存储过程中的参数?

这是这样做的“正确”方式吗?

有不同的或更好的方法吗?

0 投票
1 回答
938 浏览

sql - SQL Server 合并语句中的错误:列前缀“已更新”与查询中使用的表名或别名不匹配

我有以下 SQL 语句,但出现错误:

错误:列前缀“已更新”与查询中使用的表名或别名不匹配

关于我在这里缺少什么的任何想法?

0 投票
0 回答
939 浏览

jdbc - DB2 jdbc 驱动程序不能合并?

我编写了一个非常简单的 MERGE 语句,我可以在 DB2 控制中心成功执行,但是当我尝试通过 JDBC 执行它时,它说驱动程序没有能力?真的是这样吗?

0 投票
2 回答
1389 浏览

sql - jOOQ MERGE 支持 PostgreSQL 条件插入

我知道 jOOQ 会在不支持它的系统(例如 PostgreSQL)上模拟 SQL MERGE。

我有一个带有串行(自动增量)“id”列和字符串“uri”列的表。我想在我的数据库中使用数字 ID 而不是 URI,所以我必须确保在 ID 查找表中有一个 URI。因此,按照 jOOQ 手册中的示例,我认为这会起作用:

这给了我一个DataAccessException类似的说法:

但随后日志显示 jOOQ 继续执行并尝试使用绑定值执行查询。但该表永远不会更新。所以我猜 jOOQ 不会在 PostgreSQL 上模拟 MERGE?

所以我然后尝试 H2 数据库语法:

我得到:

什么!?但是jOOQ 文档说 H2 语法“可以由 jOOQ 完全模拟支持 SQL 标准的所有其他数据库”。PostgreSQL 肯定支持 SQL 标准。它真的意味着“...... MERGE 的 SQL 标准版本吗?”

有什么方法可以通过 jOOQ 获得对 MERGE 的 PostgreSQL 支持,还是我坚持做我会做的相同的解决方法?

0 投票
0 回答
100 浏览

sql-server - SQL Server 合并复制:确保一对多关系中的所有子级在父级可用之前同步

我有这个问题:两个表之间存在一对多关系。当它们在 SQL Server 的不同实例之间同步时,父级先行,因为所有子级都有 FK 并依赖于它的存在,然后子级来(它们可能有很大的有效负载并需要一些时间来同步)。

问题是记录是在预定的作业中处理的,当它们来的时候会自动接收它们,如果一些孩子不在那里,它会失败,或者更糟糕的是,在某些情况下会添加丢失的孩子,所以我们最终会出现重复。由于我不是复制方面的专家,我想知道合并复制是否可以确保父记录在所有待处理的子项也同步之前不可用?如果可以使用某种事务,甚至可以向父记录添加标志,在同步完成时更新,以便我可以检查它以确保它已准备好进行处理,那么答案将只是指向资源的指针该功能称为,以及我需要从复制团队那里进行配置的要求。

否则,如果您确定这是不可能的,而我必须自己以其他方式处理它也是有价值的,因为它可以帮助我找出要走的路。

谢谢!

0 投票
1 回答
124 浏览

sql - 合并导致转换错误 DATETIME --> INT

我无法弄清楚为什么会发生此错误。其他人可以帮我找出错误吗?我正在尝试合并到临时表中,并收到错误

不允许从数据类型 datetime 到 int 的隐式转换。使用 CONVERT 函数运行此查询。该错误被识别为发生在 MERGE 开始的行上。

询问: