mysql有一个replace into的dml语句,类似insert,但是会在insert之前检查表的唯一索引或主键。如果存在,就改为update操作。
这在很多应用中是一个很常用的操作。有了这个replace into ,就可以将一个 select后判断后做update or insert改为一句话,甚是方便。
oracle9以后(好像)有了merge into,也可以实现类似功能,sql demo如下
merge into qq a
using (select ‘2022’ company_no, ‘cname’ company_name from qq where rownum<2) b
on (a.company_no = b.company_no)
WHEN MATCHED THEN
UPDATE SET a.company_name = a.company_name|| 'a'
WHEN NOT MATCHED THEN
INSERT
(a.company_no, a.company_name)
VALUES
(b.company_no, b.company_name);
[/code]