1. INSERT ... ON DUPLICATE KEY UPDATE
例如:表(group_project)中有ID列(primary key )和project_id列(unique key),如果记录在表中已经存在,则影响行数是0
void bindProjectInfo(@Param("groupId") Long groupId, @Param("list") List resProjectIds);
INSERT INTO group_project (project_id, group_${groupId}) VALUES
(#{projectId}, #{groupId})
ON DUPLICATE KEY UPDATE group_${groupId} = #{groupId}
解释(针对单条数据而言):记录插入时,有唯一键,没有主键字段列,如果出现重复,就执行更新操作,相当于UPDATE group_project SET group_${groupId} = #{groupId} WHERE project_id = #{peojectId},影响行数是2;否则执行新增操作,影响行数是1。
void bindProjectInfo(@Param("id") Long id, @Param("groupId") Long groupId, @Param("list") ListresProjectIds);
INSERT INTO group_project (id, project_id, group_${groupId}) VALUES(#{id}, #{projectId}, #{groupId})ON DUPLICATE KEY UPDATE group_${groupId}= #{groupId}
解释(针对单条数据而言):记录插入时,有主键和唯一键列,如果出现重复,就执行更新操作,相当于UPDATE group_project SET group_${groupId} = #{groupId} WHERE id = #{id} OR project_id = #{peojectId} limit 1,影响行数是2;否则执行新增操作,影响行数是1。