Oracle使用Merge Into對一張表進行操作


項目中遇到一個場景,當表中有這條記錄的時候,進行修改操作,沒有則新增一條記錄。

最初用Java代碼實現的功能,后來發現有Merge這條語句。

1 MERGE INTO table_name alias1
2 USING (table | view | sub_query) alias2
3 ON (join condition)
4 WHEN MATCHED THEN
5   UPDATE table_name SET col1 = col_val1, col2 = col2_val
6 WHEN NOT MATCHED THEN
7   INSERT (column_list) VALUES (column_values);

比如有個表 user,要查找有沒有叫張三豐的,有的話更新年齡,沒有的話,新建記錄。

MERGE INTO user a
USING (count(*) c from user where user ='張三豐' ) b
ON (b.c>0)
WHEN MATCHED THEN
   UPDATE set age=66
 WHEN NOT MATCHED THEN
   INSERT (name) VALUES ('張三豐');

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM