postgresql中终止正在执行的SQL语句

在Linux系统中可以使用kill [pid]的方式强制删除进程,但对于修改数据表的语句来说,这样可能导致postgresql进入recovery mode,这样会导致锁表。

Postgresql的运行情况可以从pg_stat_activity查看,这是一个位于pg_catalogschema中的视图。

select * from pg_stat_activity

其中部分字段如下

  • datname: 数据库名称

  • pid: 命令的PID

  • query_start: SQL语句开始的时间

  • query: SQL语句的内容

  • client_addr: 执行SQL语句的客户端IP地址

对于修改表的操作,例如update、insert等,可以使用pg_catalogschema中的函数pg_terminate_backend函数完成

SELECT pg_terminate_backend(PID);

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://tranfer.cn/?id=83