源码

sql – 使用事务进行Upsert


我正在使用Spring和PostgreSQL,我尝试使用如下代码进行一种UPSERT:

jt.update("delete from A where id = 1")
jt.update("insert into A (id, value) values (1, 100)")

包装在一个事务中(使用@Transactional).

问题是,当有很多并发请求时,此代码会因“重复键”错误而失败,这意味着事务不是孤立的,或者……

我错过了有关交易如何运作的信息吗?我应该在这里使用不同的机制(例如线程同步)吗?

(1)

本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/sql-shiyongshiwujinxingupsert.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:9月 26, 2019 at 02:04 上午

热评文章