更新插入交易

2024-02-11

我将 Spring 与 PostgreSQL 结合使用,并尝试使用如下代码执行某种 UPSERT:

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

包装在交易内(使用@Transactional).

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

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


我写了一篇关于它的相当长的博文,所以即使我可能会因为链接而被否决,请阅读this http://www.depesz.com/2012/06/10/why-is-upsert-so-complicated/.

要点是事务在这里没有帮助(至少默认情况下),虽然可以编写正确的更新插入,但实际上非常棘手。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更新插入交易 的相关文章

随机推荐

  • Angular 5拦截器 - 在第一个拦截器重试失败后仅调用第二个拦截器

    我正在构建一个 Angular 5 应用程序 其中有 2 个拦截器 重试失败的 504 请求之一 另一个向用户显示有关失败请求的错误消息 我希望第二个拦截器仅在错误不是 504 或错误为 504 并且已被第一个拦截器重试时被调用 我创建了一
  • 缩放高图后执行函数

    Highcharts 中的图表缩放后是否可以执行功能 Use the 设置极端后 event xAxis categories Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec events a
  • 子 shell 进程无法访问父 shell 中定义的变量和函数

    我在同一目录中有3个脚本 请找到以下x sh y sh和z sh的内容 x sh xData DataOfX function xInit echo xInit data of a gt xData lt y sh x sh xInit s
  • 为什么 Chrome 会在空白字段上显示“请填写此字段”工具提示?

    我的客户联系我说 用户抱怨说某些字段现在显示带有消息 请填写此字段 的工具提示 我简直不敢相信我所听到的 但客户是对的 使用最新的 Chrome 版本 某些字段会显示带有此消息的浏览器工具提示 甚至与我的验证器并排 有什么问题 我缺少什么
  • C#语言设计支柱

    In the article http www artima com intv nonvirtualP html http www artima com intv nonvirtualP html http www artima com i
  • std::allocator 中“销毁”“析构函数”“解除分配”之间的区别?

    In C std allocator 存在与共同概念相关的三种方法 deallocate destroy 析构函数 我想知道 从内存管理的角度来看 它们有何不同 我什么时候应该使用这个而不是那个 谢谢你 编辑 更具体的疑问 很抱歉一开始就笼
  • C# 中的复数和本地化字符串

    我有一个 C WPF 应用程序 我正在尝试使用 resx 文件进行全球化 效果非常好 然而 我遇到了麻烦 我有一个相对简单的复数解决方案 其中我显示的字符串有单数和复数形式 我根据我正在谈论的任何事物的数量选择一个 然而 我最近接受了这样一
  • 当我回来或结束时如何重置我的控制器?

    我有一个 QuestionController 类扩展GetxController 当我使用控件退出页面时 我希望它停止工作 因为它仍在后台运行 并在我返回该页面时重新启动 我试过了 我在路线之后添加了这些ScoreScreen in ne
  • 在管理中合并用户和用户配置文件

    我一直在阅读 Django 对用户和配置文件的分离 并且我决定使用一个名为 UserProfile 的模型 该模型位于帐户应用程序中作为我的配置文件 问题是 现在我有两个独立的管理区域 一个用于修改用户 一个用于修改用户配置文件 是否可以在
  • Word 插件 获取完整的文档文本?

    我正在使用以下命令编写一个 Office addinYeoman 办公室发电机 https github com OfficeDev generator office 基于这些说明 https dev office com getting
  • 运行 SqlQuery EF 时 FieldNameLookup.GetOrdinal 中索引超出范围异常

    我们最终得到一个索引超出范围运行这样的代码时出现异常 result Data dbOptima Database ExecuteStoredProcedure task StoredProcedureValues PROC GET TASK
  • Python中的时间序列分解函数

    时间序列分解是一种将时间序列数据集分成三个 或更多 分量的方法 例如 x t s t m t e t where t is the time coordinate x is the data s is the seasonal compon
  • firebase 函数 Puppeteer 找不到 Chromium GCP

    我已经在谷歌云上使用GCP很长时间了 我想运行一个使用Puppeteer的云函数 但不幸的是 我收到以下错误 未处理的错误错误 找不到 Chromium 修订版 1069273 如果出现以下任一情况 就会发生这种情况 您在运行脚本之前没有安
  • 比较 JPA Criteria API 中的日期实体

    使用 JPA 2 和 EclipseLink 实现 我正在尝试构建一个动态查询 它应该为我带来一些在给定日期之后保留的记录 CriteriaBuilder builder em getCriteriaBuilder CriteriaQuer
  • 如何为 WongKinYiu/Yolov7 姿势估计准备自定义关键点数据集?

    如何准备自定义关键点数据集黄建耀 yolov7 https github com WongKinYiu yolov7 pose estimation 关键点格式描述如下 https cocodataset org format data h
  • 气流中任务的粒度

    对于一项任务 有许多辅助任务 从文件 数据库获取 保存属性 验证 审核 这些辅助方法并不耗时 一个样本 DAG 流 fetch data gt gt actual processing gt gt validation gt gt save
  • Paperclip:如何在 Rails 控制台中存储图片?

    我尝试将本地图像存储在 Rails 控制台中 因为我的本地存储中有很多图片 我使用爬虫下载大量图片 所以我想将它们存储到数据库中 利用回形针来完成一些图像工作 例如缩略图等 如果我使用网页将新图片一张一张保存到数据库中 会花费很多时间 所以
  • 使用 Rails 和 ActiveMerchant 进行定期计费:最佳实践、陷阱、陷阱?

    我们正在准备发布一个大型 Web 应用程序 该应用程序已经开发了一年 我们即将开始集成 ActiveMerchant 来处理该服务的经常性订阅费用 我正在寻找有关考虑我们的要求 如下所列 的最佳实践的任何建议 以及针对常见陷阱或我应该特别考
  • 如何使用 jQuery 将一个 HTML 块替换为另一个 HTML 块

    我想替换以下 html 块 table class t12PageBody cellpadding 0 cellspacing 0 width 100 tr td REGION POSITION 01 td tr table table w
  • 更新插入交易

    我将 Spring 与 PostgreSQL 结合使用 并尝试使用如下代码执行某种 UPSERT jt update delete from A where id 1 jt update insert into A id value val