oracle update or insert

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子句没有表名


版权声明:本文为mlsama原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。