gpt4 book ai didi

sql - 在 WHEN MATCHED 后合并多个语句

转载 作者:行者123 更新时间:2023-12-01 13:47:06 26 4
gpt4 key购买 nike

我熟悉 oracle 的 MERGE 语句,它通常用于 UPDATE ELSE INSERT。

我的问题是,它可以用来更新 + 插入到日志表吗?
我想监控所有已经更新的记录,所以我需要将它们保存在一个日志表中。因此,我不想再次从两个巨大的表中进行选择,而是想在 WHEN MATCHED 子句中放置另一个 INSERT 语句。所以它会是这样的:

MERGE INTO tableA A
using TableB b
ON (a.Col = b.Col)
WHEN MATCHED THEN UPDATE SET A.col2 = b.col2
INSERT INTO tableA_Log (key,col)
VALUES (a.Key,b.col2) ;

这可能吗?或者我是否必须再次从两个表中进行另一个查询(5 亿条记录和 4000 万条记录)。

提前致谢。

最佳答案

Is this possible?

不,不可能在单个 MERGE 语句中。

来自 documentation , MERGE:

的定义

Use the MERGE statement to select rows from one or more sources for update or insertion into a table or view.

这意味着您可以从多个源表中选择行,但一次只能更新或插入到一个表中,即。您要合并的表格。

您可以在表上创建一个更新后触发器,以便在基表中的行更新时将行插入到您的日志表中。

关于sql - 在 WHEN MATCHED 后合并多个语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35148793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com