1.mysql的
<insert id="insertOrUpdateNew">
insert into test
(a,b,c)
values
(#{a},#{b},#{c})
on duplicate key update
c = values(c)
</insert>
<insert id="insertOrUpdateNewNew">
insert into test
(a,b,c)
values
<foreach collection="list" item="l" separator=",">
(#{l.a},#{l.b},#{l.c})
</foreach>
on duplicate key update
c = values(c)
</insert>
2.postgresql
<insert id="insertOrUpdateNew">
insert into test
(a,b,c)
values
(#{a},#{b},#{c})
on conflict(a,b)
do update set
c = #{c}
</insert>
<insert id="insertOrUpdateNewNew">
insert into test
(a,b,c)
values
<foreach collection="list" item="l" separator=",">
(#{l.a},#{l.b},#{l.c})
</foreach>
on conflict(a,b) do nothing
</insert>
推荐下面:
<insert id="insertOrUpdateNew">
insert into test
(a,b,c)
values
(#{a},#{b},#{c})
on conflict(a,b) do update set c = excluded.c
</insert>
postgresql插入的多条的话,总是报错....看网上也有人这样啊,难道版本原因,请大牛解答~
insert into test
(a,b,c)
values
(1,1,2),(1,1,3)
on conflict(a,b) do update set c = excluded.c
本文探讨了在MySQL和PostgreSQL中处理数据插入时的冲突解决策略,包括使用ON DUPLICATE KEY UPDATE和ON CONFLICT DO UPDATE语句。同时,文章讨论了在批量插入数据时遇到的问题及可能的解决方案。
3415

被折叠的 条评论
为什么被折叠?



