对MySql中on duplicate key update 的运用,mapper命名空间中,常插入或是更新,要写两个,很烦,mysql中存在 on duplicate key update可以,二合一.
INSERT INTO LWMS_SEND_POOL_EVENT
(ID, LOGISTIC_ORDER_ID, SEND_SYS, ORDER_TYPE, STATUS, REMARK, SEND_COUNT, CREATE_NODE, LAST_NODE, CREATE_TIME, CREATE_USER)VALUES
(<#if id??&& id!=''>:id,<#else>'',</#if><#if logisticOrderId??&& logisticOrderId!=''>:logisticOrderId,<#else>'',</#if><#if sendSys??&& sendSys!=''>:sendSys,<#else>'',</#if><#if orderType??&& orderType!=''>:orderType,<#else>'',</#if><#if status??&& status!=''>:status,<#else>'',</#if><#if remark??&& remark!=''>:remark,<#else>'',</#if><#if sendCount??&& sendCount!=''>${sendCount},<#else>0,</#if><#if createNode??&& createNode!=''>:createNode,<#else>'',</#if><#if lastNode??&& lastNode!=''>:lastNode,<#else>'',</#if>now(), <#if createUser??&& createUser!=''>:createUser<#else>''</#if>)
ON DUPLICATE KEY
UPDATE
<#if orderType?exists&&orderType!=''>ORDER_TYPE=:orderType,<#else>ORDER_TYPE='',</#if>
<#if status?exists&&status!=''>STATUS=:status,<#else>STATUS='',</#if>
<#if remark?exists&&remark!=''>REMARK=:remark,<#else>REMARK='',</#if>
<#if sendCount?exists>SEND_COUNT=${sendCount},<#else>SEND_COUNT = SEND_COUNT + 1, </#if>
<#if lastNode?exists&&lastNode!=''>LAST_NODE=:lastNode,<#else>LAST_NODE='',</#if>
<#if lastHandleUser?exists&&lastHandleUser!=''>LAST_HANDLE_USER=:lastHandleUser,<#else>LAST_HANDLE_USER='',</#if>
LAST_HANDLE_TIME = now()