在 pymssql 中重复死锁查询后更新失败

2024-04-29

我将 SQL Server 与 pymssql 一起使用,发现一个特别复杂的 SELECT 查询偶尔会被选为死锁受害者。因此,我将其包装在 while 循环中,以便在发生这种情况时重试事务,大致如下:

while True:

    try:

        cursor.execute('SELECT .......')
        count_row = cursor.fetchone();
        break

    except Exception, tec:

        print "Got error: %s" % (tec)
        time.sleep(1)

cursor.execute('UPDATE .........')
self.conn.commit()

它似乎有效 - 如果 SELECT 遇到死锁,那么它将暂停一秒钟,重试并获得正确的答案。然而,每次发生以下 UPDATE 语句总是失败:

pymssql.OperationalError: Cannot commit transaction: (3902, 'The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION.DB-Lib error message 3902, severity 16:\nGeneral SQL Server error: Check messages from the SQL Server\n')

UPDATE 语句不在 while 循环中,所以我不知道它为什么失败。当 SELECT 没有达到死锁条件时它工作正常,所以我认为这与从该错误中恢复有关。

有任何想法吗?


None

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

在 pymssql 中重复死锁查询后更新失败 的相关文章

随机推荐

  • 自动将 Linux 文件名重命名为 Windows 中合法的新文件名

    我想将 linux 文件重命名为在 windows 中合法的文件名 它的长度不应超过允许的长度 并且不应包含 Windows 中不允许的字符 有时我将论文的标题复制到文件名 它们有特殊字符 例如 or 另外 从 pdf 中复制和粘贴标题时
  • 如何在highcharts中设置动态数据

    我正在从 servlet 获取数据 我从 servlet 发送的 json 对象的 sysout 是 jsonArray bugzilla 20 redmind 14 现在我的java脚本是
  • 单击“提交”按钮时禁用中继器中的选中复选框

    我想在用户单击 ASP NET 中的 提交 按钮时禁用选中的复选框 我可以使用 JavaScript 使用按钮的 onclick 事件禁用复选框 这些复选框位于中继器中 通过单击 提交 按钮提交表单时 代码隐藏按钮单击代码中没有任何复选框显
  • Doxygen 在子目录中找不到标头

    我正在使用 Doxygen 记录 C 库的头文件 在里面Doxyfile 我定义 INPUT include 希望 Doxygen 能够为所有头文件生成文档include Foo 但事实并非如此 只有index html被生成 我可以设置I
  • 绘制从节点到空的箭头

    我想绘制一个美人鱼图 其中包含不与节点连接的箭头 graph LR A Sample Text gt A A gt B B gt A B gt gt A and B gt 失败 可能是因为箭头需要输入和输出节点 有解决方法吗 我可以使节点不
  • 设置样式缩放级别 openlayers 3

    在 Openlayers 中 可以根据缩放级别打开或关闭某些功能 尽管查看了文档 但我在 OpenLayers 3 中没有找到相同的功能 有谁知道如何做到这一点 这是我放置在地图上的功能ol style Text是我只想在用户放大到特定缩放
  • 运算符“&&”不能应用于“bool”和“System.Collections.Generic.IEnumerable”类型的操作数

    我正在尝试第一个过滤器列表 然后使用OrderBy但我收到以下错误Where clause 运算符 不能应用于 bool 类型的操作数并且 System Collections Generic IEnumerable 我的查询有什么问题吗
  • 使用 javascript 打开文件,客户端

    在我的应用程序中 我想打开客户端计算机上存在的文件 我创建了两个应用程序 桌面应用程序和 Web 应用程序 当用户安装桌面应用程序时 一些文件会被复制到其安装路径 我想通过 javascript 从我的 Web 应用程序打开这些文件 出于安
  • AngularJS:使用 $http.post 传递复杂的 json 数据

    我在使用 http post 在 angularjs 中传递复杂的 json 对象时遇到问题 我不断收到从服务器发回的 400 bad request 错误 表示该请求在语法上不正确 我相信它与数组有关 因为当我不包含它时它会很好地传递 我
  • 直接放置在 std::map 中

    为什么这段代码无法编译 std map
  • 有没有办法使用 iframe api 在暂停时隐藏相关的 Youtube 视频?

    我正在使用 iframe API 我想在页面上嵌入一些视频 但我不想在用户暂停视频时显示相关视频 我知道 2018 年 9 月之后 Youtube 取消了在结束或暂停视频时隐藏相关视频的可能性 我知道参数 rel 0 现在显示来自视频上传者
  • Android 检测 Kitkat 的 USB 存储 (4.4)

    我创建了一个 webview 应用程序 它在资产目录中的应用程序内托管一个网站 我想通过插入我的平板电脑 USB 插槽的 U 盘来更新网站 我首先尝试使用 MEDIA MOUNTED 广播 该广播不适用于我的 android 4 4 药片
  • Android SQLite 列.....不是唯一的

    我在 Android 上使用 SQLite 并收到此错误 02 11 18 05 37 224 E SQLiteDatabase 26583 android database sqlite SQLiteConstraintException
  • 添加覆盖 twinx 轴线条的图例

    我有这个Python代码 它与轴成对ax并在两个轴上绘制一些函数 我将图例绘制在ax1 问题是图例没有覆盖曲线ax2 有可能自动定位传说中的ax通过覆盖线ax2 请注意 在fig legend选项loc best 不可用 我需要在绘图区域内
  • 最长和最短的 HTML 字符实体名称是什么? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 管子周围有
  • Python C api - 函数重载

    我有许多接受不同参数的 C 函数 例如 foo i int a foo c char c 是否可以在 python C api 中重载这些函数 我尝试使用以下方法表 static PyMethodDef test methods foo P
  • 如何在“nodejs”中查找请求参数

    当我向nodejs服务器发送请求时 当请求发送到nodejs服务器时 我们如何找到请求查询中发送的参数 req param req params req query 所有给予未定义 也当我stringify req请求它给出错误 Conve
  • 如何使用apache poi读取Excel文件中的多行和多列?

    我想读取附加的 excel 文件 使用 Apache POI 在匹配问题类型 滑块后 想要传递相应类的值 根据问题类型创建不同的类 https i stack imgur com PRbo5 png 使用 Fillo Java Jar 它非
  • 如何构建 Boost::program_options

    我想使用 boost program options 安装boost后 我认为我必须单独构建program options http www boost org doc libs 1 43 0 more getting started wi
  • 在 pymssql 中重复死锁查询后更新失败

    我将 SQL Server 与 pymssql 一起使用 发现一个特别复杂的 SELECT 查询偶尔会被选为死锁受害者 因此 我将其包装在 while 循环中 以便在发生这种情况时重试事务 大致如下 while True try curso