在PL / SQL(oracle)中,如果不存在插入行的最简单方法是什么?
我想要类似的东西:
IF NOT EXISTS (SELECT * FROM table WHERE name = 'jonny') THEN
INSERT INTO table VALUES ("jonny", null);
END IF;
但这不起作用。
注意:此表有2个字段,例如名称和 age 。但是只有名称是PK。
最佳答案
INSERT INTO table
SELECT 'jonny', NULL
FROM dual -- Not Oracle? No need for dual, drop that line
WHERE NOT EXISTS (SELECT NULL -- canonical way, but you can select
-- anything as EXISTS only checks existence
FROM table
WHERE name = 'jonny'
)