取消 pyscopg2 中的查询执行
-
19-09-2019 - |
题
如何使用 pyscopg2(Python Postgres 驱动程序)取消查询语句的执行?
举个例子,假设我有以下代码:
import psycopg2
cnx_string = "something_appropriate"
conn = psycopg2.connect(cnx_string)
cur = conn.cursor()
cur.execute("long_running_query")
然后我想从另一个线程取消长时间运行的查询的执行 - 我必须在连接/游标对象上调用什么方法才能执行此操作?
解决方案
您可以通过调用取消查询 pg_cancel_backend(pid)
PostgreSQL 函数位于单独的连接中。
可以从后台获取取消的PID connection.get_backend_pid()
psycopg2 的方法(从版本 2.0.8 开始提供)。
不隶属于 StackOverflow