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


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

Postgresql的运行情况可以从pg_stat_activity查看,这是一个位于pg_catalogschema中的视图。其中部分字段如下

  • datname: 数据库名称
  • pid: 命令的PID
  • query_start: SQL语句开始的时间
  • query: SQL语句的内容
  • client_addr: 执行SQL语句的客户端IP地址

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

SELECT pg_terminate_backend(PID);


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM