admin

Oracle DB插入,对重复键不执行任何操作

sql

我必须在oracle DB中插入一些数据,而无需事先检查它是否已经存在。

是否存在任何方式,在oracle上进行转换以在查询中捕获异常并对其进行处理以不返回任何异常?

像mysql这样的风格将是完美的

insert .... on duplicate key a=a

阅读 132

收藏
2021-06-07

共1个答案

admin

您可以使用MERGE。语法与常规插入有些不同;

MERGE INTO test USING (
  SELECT 1 AS id, 'Test#1' AS value FROM DUAL    -- your row to insert here
) t ON (test.id = t.id)                          -- duplicate check
WHEN NOT MATCHED THEN 
   INSERT (id, value) VALUES (t.id, t.value);    -- insert if no duplicate

要使用进行测试的SQLfiddle

2021-06-07