1. 程式人生 > >MySQL+Mybatis批量插入時對已存在的記錄進行更新

MySQL+Mybatis批量插入時對已存在的記錄進行更新

	<insert id="addActiveTerminalStatics" parameterType="List">
		insert into tms_report_active_terminal_statistics (
			active_terminal_count,
			statistics_time_of_hour,
			manufacturer,
			model_name
		)
		values
		<foreach  collection="list" item="item" separator=",">  
		 (
			#{item.active_terminal_count},
			#{item.time_of_hour},
			#{item.manufacturer},
			#{item.model_name}
		)
		</foreach>
		ON DUPLICATE KEY UPDATE 
			active_terminal_count = VALUES(active_terminal_count)
	</insert>


1)以上xml寫的sql語句實現了批量插入功能,如果資料庫中已經存在要插入記錄,則進行更新操作,其表中定義的自增主鍵id並不會變化

2)批量插入對已存在的記錄更新的另一種方法:

replace into 雖然可以更新已存在的記錄,但是表中定義的自增主鍵id會變化