QSqlDatabase / QSqlQuery 终止 运行 查询?

QSqlDatabase / QSqlQuery terminating running query?

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

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

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

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

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

在 Postgres 中,您可以通过执行

来识别后端进程 id
select pg_backend_pid();

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

此函数的 MySQL 等价于 CONNECTION_ID ()