mysql 使用 replace into 或者 ON DUPLICATE KEY 实现插入数据或者更新已存在数据(insertOrUpdate)

Posted BBinChina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 使用 replace into 或者 ON DUPLICATE KEY 实现插入数据或者更新已存在数据(insertOrUpdate)相关的知识,希望对你有一定的参考价值。

1、replace into 的做法是先根据主键来判断数据是否存在,如果存在即删除旧数据后重新插入数据,来达到update的目的


    <insert id="insertOrUpdateData" useGeneratedKeys="true" keyProperty="id" parameterType="list">
        replace into datas
        (<include refid="column"/>)
        VALUES
        <foreach collection="list" item="it" separator=",">
            ( #{it.data})
        </foreach>
    </insert>

以上采用id主键(也可为 唯一索引)来进行判断

2、ON DUPLICATE KEY 判断主键

INSERT INTO person (id,age,name,address,score)VALUES( 1, 18 , '张三' ,'洛阳',1) ON DUPLICATE KEY UPDATE name='王五',address='北京海淀'score = score + 1

以上是关于mysql 使用 replace into 或者 ON DUPLICATE KEY 实现插入数据或者更新已存在数据(insertOrUpdate)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL中的insert into 与replace into用法和区别

谨慎使用mysql的replace into(转载)

MySQL replace into

MySQL中REPLACE INTO和INSERT INTO的区别分析

mysql中的replace into和insert into的效率问题

MySql的replace into 语句