【发布时间】:2015-12-23 09:08:31
【问题描述】:
如何检查psycopg2 连接上的未结交易?我打算将它添加到我的单元/功能测试中,因为 Python 的 DB API 使用隐式事务。
【问题讨论】:
标签: python postgresql transactions psycopg2 python-db-api
如何检查psycopg2 连接上的未结交易?我打算将它添加到我的单元/功能测试中,因为 Python 的 DB API 使用隐式事务。
【问题讨论】:
标签: python postgresql transactions psycopg2 python-db-api
可以查看连接的status属性:
from psycopg2.extensions import STATUS_BEGIN, STATUS_READY
if conn.status == STATUS_READY:
print("No transaction in progress.")
elif conn.status == STATUS_BEGIN:
print("A transaction is in progress.")
或者,transaction status 可以通过connection.get_transaction_status() 获得。
要手动检查正在进行的事务,您可以使用 PostgreSQL 的statistics collector:
SELECT * FROM pg_stat_activity WHERE state = 'idle in transaction';
【讨论】: