1

我正在使用 QSqlDatabase 并试图找到一种方法来终止正在运行的查询(我正在编写的 sql 客户端的一种必要功能)

有没有办法获取正在运行的查询的 id?(计划是在另一个连接中执行 kill/pg_cancel_backend 命令——需要支持 PostgreSQL + MySQL)

我考虑过窥探进程列表以获取相同的查询,但如果它被终止的原因是因为它运行了两次而用户只是想杀死一个特定的查询呢?(这会使该方法不完全准确,并且会超级hacky)

编辑:我与 QSqlDatabase 并没有超级联系(除了它是我正在使用的框架的一部分),所以如果这是唯一的方法,我不介意使用其他东西,但能够使用它肯定会很好它。

我完全没有想法,所以任何事情都会非常感激!

4

1 回答 1

1

id在 Postgres 中,您可以通过执行来识别您的后端进程

select pg_backend_pid();

就在建立连接之后。在id您关闭连接之前,它保持不变。

此函数的 MySQL 等效项是CONNECTION_ID ().

于 2015-08-23T19:25:19.060 回答