Mybatis on duplicate key update 不返回主鍵

<insert id="insertOrUpdate" parameterType="XXXX" useGeneratedKeys="true"
			keyProperty="id">
		<include refid="insertSql"/>
		on duplicate key update
		<trim suffixOverrides=",">
			<include refid="updateSql"/>
		</trim>
	</insert>

注意 配置 useGeneratedKeys="true"   keyProperty="id"

on duplicate key update  存在即修改。但是當修改時,數據庫中沒有字段值變化,即返回的影響行爲0時,這時是不返回主鍵的

不返回主鍵

返回主鍵

所以要確保一定有主鍵返回,就必須讓mysql有影響行

on duplicate key update  修改時如果原值保存,就不能確保一定有字段值更新,就不保證一定有影響和,做好就是加上更新時間字段,每次帶上。updated_at = NOW(); 最爲合適

請不要依賴Mysql  datetime的 修改自動填入值 (ON UPDATE CURRENT_TIMESTAMP),因爲影響行依然爲0;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章