如何检查 psycopg2 连接上的未结交易?
How do I check for open transactions on a psycopg2 connection?
如何检查 psycopg2
连接上的未结交易?我打算将它添加到我的 unit/functional 测试中,因为 Python 的数据库 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 can be obtained with connection.get_transaction_status()
。
要手动检查正在进行的交易,您可以使用 PostgreSQL 的 statistics collector:
SELECT * FROM pg_stat_activity WHERE state = 'idle in transaction';
如何检查 psycopg2
连接上的未结交易?我打算将它添加到我的 unit/functional 测试中,因为 Python 的数据库 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 can be obtained with connection.get_transaction_status()
。
要手动检查正在进行的交易,您可以使用 PostgreSQL 的 statistics collector:
SELECT * FROM pg_stat_activity WHERE state = 'idle in transaction';