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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章