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}