请问一下,我要向一个表插入数据,根据ID,重复的更新,没有的插入,不使用COUNT后判断,能做到吗?
Merge 命令可以用来用一个表中的数据来修改或者插入到另一个表。插入或者修改的操作取决于ON子句的条件。
该语句可以在同一语句中执行两步操作,可以减少执行多条INSERT 和UPDATE语句。
MERGE是一个确定性的语句,即不会在同一条MERGE语句中去对同一条记录多次做修改操作。
MERGE INTO 要合并的表/视图
USING 要更新或插入的数据源
ON 语句进行插入或更新的条件(注意条件要用括号括起来)
WHEN MATCHED THEN UPDATE 要更新的列(要加SET)
WHEN NOT MATCHED THEN INSERT 要插入的列(不用加表名)
例:
MERGE INTO T_DUTY_EMPLOYEES T
USING V_DUTY_EMPLOYEES V
ON (T.ID = V.ID)
WHEN MATCHED THEN
UPDATE
SET T.PROVINCE = V.PROVINCE,
T.CITY = V.CITY,
T.DUTYDAY = V.DUTYDAY,
T.DUTYTIME = V.DUTYTIME,
T.DUTYAREA = V.DUTYAREA,
T.EMPLOYEENAME = V.EMPLOYEENAME,
T.EMPLOYEEID = V.EMPLOYEEID,
T.EMPLOYEETEL = V.EMPLOYEETEL,
T.BAK = V.BAK
WHEN NOT MATCHED THEN
INSERT
(PROVINCE,
CITY,
DUTYDAY,
DUTYTIME,
DUTYAREA,
EMPLOYEENAME,
EMPLOYEEID,
EMPLOYEETEL,
BAK,
CNUM,
ID,
SUNNUM2,
SUNNUM,
ROLEID)
VALUES
(V.PROVINCE,
V.CITY,
V.DUTYDAY,
V.DUTYTIME,
V.DUTYAREA,
V.EMPLOYEENAME,
V.EMPLOYEEID,
V.EMPLOYEETEL,
V.BAK,
V.CNUM,
V.ID,
V.SUNNUM2,
V.SUNNUM,
V.ROLEID);
本文介绍如何使用MERGE语句实现根据ID重复更新、不存在则插入的功能,通过一个具体的例子展示了如何在一个表中根据另一个表的数据进行高效地更新和插入操作。


被折叠的 条评论
为什么被折叠?



