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(字段名)