select sessionId, login_name, dept_name, ipaddr, login_location, browser, os, status, start_timestamp, last_access_time, expire_time
from sys_user_online
merge into sys_user_online a
using (select count(1) co
from sys_user_online
where sessionid = #{sessionId}) b
on (b.co ]]> 0)
when matched then
update
set login_name = #{loginName},
dept_name = #{deptName},
ipaddr = #{ipaddr},
login_location = #{loginLocation},
browser = #{browser},
os = #{os},
status = #{status},
start_timestamp = #{startTimestamp},
last_access_time = #{lastAccessTime},
expire_time = #{expireTime}
where sessionid = #{sessionId}
when not matched then
insert
values
(#{sessionId}, #{loginName}, #{deptName}, #{ipaddr}, #{loginLocation}, #{browser}, #{os}, #{status}, #{startTimestamp}, #{lastAccessTime}, #{expireTime})
delete from sys_user_online where sessionId = #{sessionId}