Oracle Trigger UPDATE而不是INSERT

时间:2012-06-13 20:34:05

标签: oracle plsql triggers oracle11g

尝试找到一种编写Oracle触发器的方法,该方法将在插入之前检查以查看是否在主列中找到匹配项,如果是,则更新行信息而不是插入新行。

我看过before insert。有没有办法根据该块内的条件取消插入?

我还看过使用instead of子句,但需要处理视图。

最好的方法是什么?

2 个答案:

答案 0 :(得分:4)

使用MERGE语句而不是INSERT。

答案 1 :(得分:0)

使用合并声明。

MERGE INTO <<your table>> t
   USING (<<your list of records - can be the result of a SELECT >>)
   ON ( <<join between table and list of records >>)
WHEN MATCHED THEN
  UPDATE SET << the rows you want to set>>
WHEN NOT MATCHED THEN
  INSERT (<<columns of table>>)
  VALUES (<<value>>)

https://oracle-base.com/articles/9i/merge-statement