mysql "ON DUPLICATE KEY UPDATE" 的使用

ON DUPLICATE KEY UPDATE 语法并不是SQL的标准语法,如果在句尾指定该语法,它会根据指定的主键或者唯一标示索引来更新数据库的内容

具体的操作是想根据唯一标示查看数据库是否存在该记录,如果存在该记录就更新,如果不存在就会插入一条新的记录,

例子:

<insert id="batchCreatTickets" parameterType="java.util.List">
     insert into ticket 
     (id,ticket_id,price,stock,ticket_status,
     show_id)
     values
     <foreach collection="tickets" item="item" index="index"
            separator=",">
       (#{item.id},#{item.ticketId},#{item.price},#{item.stock},#{item.ticketStatus},
        #{item.showId})
    </foreach>
        ON DUPLICATE key update ticket_status=values(ticket_status),stock=values(stock),price=values(price)
  </insert>

使用ON DUPLICATE KEY UPDATE 时 如果想要更新数据,需要使用values(字段名)