【发布时间】:2016-05-10 23:34:12
【问题描述】:
我熟悉 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 亿条记录和 4 千万条记录)。
提前致谢。
【问题讨论】:
-
您最好为此使用普通更新和插入。
标签: sql oracle performance merge sql-update