oracle提供MERGE INTO关键字,实现不存在插入存在则修改的功能
举个例子:
<update id="insertOrUpdate" parameterType="com.mlsama.admin.entities.ParamConfig"> MERGE INTO T_DAP_PARAMETER_CONFIG t1 USING (SELECT #{paramName} as PARAM_KEY,#{paramValue} as PARAM_VALUE FROM dual) t2 on (t1.PARAM_KEY=t2.PARAM_KEY) WHEN MATCHED THEN UPDATE SET t1.PARAM_VALUE=t2.PARAM_VALUE WHEN NOT MATCHED THEN insert (PARAM_KEY,PARAM_VALUE,PARAM_DESC) values (#{paramName},#{paramValue},#{paramDesc}) </update>
注意:
1. 使用update标签,而不是insert标签
2. USING 子句要从dual查值,否则从具体表查不到时,insert失效
3. insert子句没有表名