【发布时间】:2025-11-27 17:05:01
【问题描述】:
我需要能够运行 Oracle 查询来插入许多行,但它还会检查主键是否存在,如果存在,则跳过该插入。比如:
INSERT ALL
IF NOT EXISTS( SELECT 1 WHERE fo.primary_key='bar' )
(
INSERT INTO
schema.myFoo fo ( primary_key, value1, value2 )
VALUES
('bar','baz','bat')
),
IF NOT EXISTS( SELECT 1 WHERE fo.primary_key='bar1' )
(
INSERT INTO
schema.myFoo fo ( primary_key, value1, value2 )
VALUES
('bar1','baz1','bat1')
)
SELECT * FROM schema.myFoo;
Oracle 完全可以做到这一点吗?
如果你能告诉我如何在 PostgreSQL 或 MySQL 中做到这一点,可以加分。
【问题讨论】:
-
我喜欢使用 CTE - Common Table Expressions Oracle: how to INSERT if a row doesn't exist
标签: sql oracle oracle-sqldeveloper