查询PostGreSQL数据库中是否有死锁的情况;
1、执行语句
-- 查询数据库中有没有死锁 :granted :如果持有锁,为真t如果等待锁,为假f
select * from pg_locks where granted='f'
2、pg_locks中各字段的含义
3、如果出现死锁,则杀死进程
杀死进程的两种方式,
第一种是:
select pg_cancel_backend(PID);
这种方式只能kill select的查询,对于upload、delete及DML不生效;
第二种:
select pg_terminate_backend(PID)
这种方式可以kill掉各种操作,select,update、delete、drop等操作引起的死锁