ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [Q]如果存在就更新,不存在就插入可以用一个语句实现吗 zt

[Q]如果存在就更新,不存在就插入可以用一个语句实现吗 zt

原创 Linux操作系统 作者:orchidllh 时间:2005-03-15 00:00:00 0 删除 编辑
[A]9i已经支持了,是Merge,但是只支持select子查询,
如果是单条数据记录,可以写作select …… from dual的子查询。
语法为:
MERGE INTO table
   USING data_source
     ON (condition)
     WHEN MATCHED THEN update_clause
     WHEN NOT MATCHED THEN insert_clause;

MERGE INTO course c
    USING (SELECT course_name, period,
        course_hours
    FROM course_updates) cu
      ON (c.course_name = cu.course_name
      AND c.period = cu.period)
    WHEN MATCHED THEN
       UPDATE
       SET c.course_hours = cu.course_hours
    WHEN NOT MATCHED THEN
       INSERT (c.course_name, c.period,
       c.course_hours)
       VALUES (cu.course_name, cu.period,
       cu.course_hours);

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/51862/viewspace-180505/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-02-21

  • 博文量
    180
  • 访问量
    842349