[Q]如果存在就更新,不存在就插入可以用一個語句實現嗎 zt

orchidllh發表於2005-03-15
[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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章