You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行SQL查询时触发‘cannot execute LOCK TABLE during recovery’错误的原因

错误原因分析
  • 核心问题:你连接的PostgreSQL实例正处于恢复模式(只读状态),此时数据库不允许执行任何需要修改数据或加排他锁的操作。
  • 触发细节:你调用的PL/pgSQL函数soft_batch_allocate_id在第21行执行了lock table id in exclusive mode排他锁语句,这类操作在恢复阶段被严格禁止,直接触发psycopg2.errors.ReadOnlySqlTransaction错误。
  • 恢复模式的常见场景:当前连接的是流复制架构中的备库、主库刚发生故障正在崩溃恢复、或者数据库处于备份恢复过程中,这些状态下数据库仅支持只读查询,无法处理写事务或锁表类操作。

内容的提问来源于stack exchange,提问作者jikf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 19:40:23