pg_cancel_backend() 是一个系统函数,用于取消指定后端当前的查询。
pg_cancel_backend() 添加于 PostgreSQL 8.0。
用法
pg_cancel_backend (pidinteger) →boolean
变更历史
- PostgreSQL 9.2
- 非超级用户可以终止其在其他后端进程中的会话 (提交 c60ca19d)
- PostgreSQL 8.1
- 返回值从
integer更改为boolean(提交 e4d9b697)
- 返回值从
- PostgreSQL 8.0
- 添加(提交 e8d9d68c)
示例
指示一个后端取消当前的查询
postgres=# SELECT pg_cancel_backend(1308332); pg_cancel_backend ------------------- t (1 row)
受影响的后端
postgres=# SELECT pg_backend_pid();
pg_backend_pid
----------------
1308332
(1 row)
postgres=# INSERT INTO foo VALUES(generate_series(1,100000000));
ERROR: canceling statement due to user request
参考资料
- PostgreSQL文档: 服务器信号函数
