在Oracle中,用一个语句实现该需求:如果某条记录存在那么就执行更新操作,如果不存在那么就执行插入操作。
可以采用MERGE语句,但是只支持SELECT子查询。语法为:
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);
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:230161599
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。




