现有记录用户每天的访问次数记录表PD_VISITS:
当需要记录用户某次访问数据时,需考虑该用户当天是否已存在记录。
存在则次数count+1,不存在则需插入一条count为1的该用户的访问记录。
Merge into的用法如下(loginName为当前用户,cdate为当天时间):
MERGE INTO PD_VISITS VI
USING(
SELECT
#{loginName,jdbcType=VARCHAR} AS LOGIN_NAME,
#{cdate,jdbcType=DATE} AS CDATE
FROM DUAL
)TMP
ON (VI.LOGINNAME = TMP.LOGIN_NAME AND VI.CDATE = TMP.CDATE)
WHEN MATCHED THEN
UPDATE SET VI.COUNT = VI.COUNT + 1
WHEN NOT MATCHED THEN
INSERT
(LOGINNAME, CDATE, COUNT)
VALUES(
TMP.LOGIN_NAME,
TMP.CDATE,
1
)
注意点:
1.merge into只能更改PD_VISITS表的数据,不能更改USING后那张表的数据;
2.on后面的条件一定要放到括号里。