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>