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