sql - Oracle DB 插入并且对重复键不执行任何操作

标签 sql oracle oracle-sqldeveloper

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

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

像 mysql 风格的东西会很完美

insert .... on duplicate key a=a

最佳答案

您可以使用 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

An SQLfiddle to test with .

关于sql - Oracle DB 插入并且对重复键不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17946595/

相关文章:

oracle-sqldeveloper - sql developer中的DATA_DUMP_DIR在哪里

mysql - SQL - 从多个表中选择多个字段

sql - 无法在 SQL Developer 导入向导中从 Excel 读取时间戳

mysql - 我需要有关 MySQL 查询的帮助

c# - 在窗体关闭时关闭 SQL 连接 (C#)

oracle - 尝试调用过程时的 PLS-00103

c - Oracle 11g 中 rowid 的长度是固定的吗?

mysql - 如何在SQL中选择仅一个字段和所有其他字段重复的记录?

SQL 搜索和替换高级

oracle - 在oracle中选择不等于空字符串的字段