Mybatis 中 ON DUPLICATE KEY UPDATE用法

本文详细解析了在MyBatis中如何使用ON DUPLICATE KEY UPDATE语句,当遇到唯一索引或主键冲突时,实现数据的更新而非抛出错误。通过具体示例,展示了如何在插入新数据的同时,检查并更新已存在的记录,从而确保数据的一致性和完整性。

Mybatis中 ON DUPLICATE KEY UPDATE用法

在MySQL数据库中,如果在insert语句后面带上ON DUPLICATE KEY UPDATE 子句,那么 插入的行与表现有记录 的惟一索引或主键中产生重复值,那么就会发生旧行的更新;如果插入的行数据与现有表中记录的唯一索引或者主键不重复,则执行新纪录插入操作。

条件操作
唯一索引/主键相同更新原有数据
唯一索引/主键不同插入新数据

总结: 存在则更新,如果不存在则新增

举例:

<insert id="add">

    INSERT INTO t_purchase (order_id, mac_type, price, amount, type, file,inputer,description)
    VALUES
    <foreach collection="list" index="index" item="item" separator=",">
        (#{item.orderId}, #{item.macType}, #{item.price}, #{item.amount}, #{item.type}, #{item.file}, #{item.inputer}, IFNULL(#{item.description},DEFAULT(description)))
    </foreach>
    ON DUPLICATE KEY UPDATE
    order_id = VALUES(order_id),
    mac_type = VALUES(mac_type),
    price = VALUES(price),
    amount = VALUES(amount),
    type = VALUES(type),
    file = VALUES(file),
    inputer = VALUES(inputer),
    description = VALUES(description),
    enable = 1

</insert>
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值