go runtime_error ai_generated true

sql: 事务已提交或回滚

sql: transaction has already been committed or rolled back

ID: go/sql-tx-committed-twice

其他格式: JSON · Markdown 中文 · English
80%修复率
90%置信度
0证据数
2024-08-15首次发现

版本兼容性

版本状态引入弃用备注
1.10 active

根因分析

对已提交或回滚的事务再次调用Commit或Rollback

English

对已提交或回滚的事务再次调用Commit或Rollback

generic

解决方案

  1. 90% 成功率
    使用defer tx.Rollback()并检查Commit错误
  2. 85% 成功率
    在Commit后设置标志位

无效尝试

常见但无效的做法:

  1. 70% 失败

    状态管理混乱,后续操作不可预测

  2. 80% 失败

    如果Commit成功,Rollback会返回此错误