mysql "ON DUPLICATE KEY UPDATE" 语法

时间:2022-03-13 04:37:57

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

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

例子:

doorId是data_dev_door表中的唯一标识在表中如果doorId存在就会UPDATE如果不存在就会执行insert

注意: ON DUPLICATE KEY UPDATE 后必须存在是唯一标识:doorId 同时在语句后面也要加上要更新的字段 

<insert id="update">
INSERT INTO data_dev_door(
`DoorId`,
`ReaderNo`
) values
<foreach collection="list" item="item" index="index" separator="," >
(#{item.doorId},#{item.readerNo})
</foreach>
ON DUPLICATE KEY UPDATE doorId=VALUES(doorId),ReaderNo=VALUES(ReaderNo)
</insert>