【发布时间】:2014-05-22 15:53:50
【问题描述】:
我想对数据库中不存在的主题元组执行 INSERT 过程条件。
我不确定如何制定以下内容
IF !(SELECT a1, a2, a3, FROM table) THEN
INSERT VALUES INTO TABLE (a1, a2, a3)
ELSE
-- Do Nothing
END IF
我需要使用游标,抓取元组,然后根据过程的属性检查每个值吗?我想到了,但如果没有必要,我不想这样做。
【问题讨论】:
-
您可以使用 MERGE 语句:docs.oracle.com/cd/E11882_01/server.112/e41084/…
-
this answer 可以作为我需要的 MERGE 的合适示例使用吗?
-
是的,除非您需要一个“无操作”来处理 WHEN MATCHED 情况。我认为“当匹配时为空”是允许的,但显然不是,它必须类似于“当匹配时然后 t.a1 = t.a1”。我想我已经意识到你真正需要什么,并会发布答案。
-
@TonyAndrews - 如果您不想使用
WHEN MATCHED子句,请不要使用它 - 它是可选的。 -
@Tony 提供答案,我会提名。