用oracle的merge实现mysql的replace into

2009年九月2日 由 贝贝爸 Leave a reply »

mysql有一个replace into的dml语句,类似insert,但是会在insert之前检查表的唯一索引或主键。如果存在,就改为update操作。
这在很多应用中是一个很常用的操作。有了这个replace into ,就可以将一个 select后判断后做update or insert改为一句话,甚是方便。

oracle9以后(好像)有了merge into,也可以实现类似功能,sql demo如下

  1. merge into qq a
  2. using (select '2022' company_no, 'cname' company_name from qq where rownum<2) b
  3. on (a.company_no = b.company_no)
  4. WHEN MATCHED THEN
  5.   UPDATE SET a.company_name = a.company_name|| 'a'
  6. WHEN NOT MATCHED THEN
  7.   INSERT
  8.     (a.company_no, a.company_name)
  9.   VALUES
  10.     (b.company_no, b.company_name);

Popularity: 27%

相关文章

Advertisement

Leave a Reply

很抱歉评论不显示链接,发表垃圾评论徒劳。