MySql on duplicate key update使用

对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() 





猜你喜欢

转载自blog.csdn.net/weixin_39793432/article/details/81872821