PostgreSQL解锁表
一、查看单表加锁情况
SELECT relation ::regclass
,t.*
FROM pg_locks t
WHERE relation = 'tzq_log_t' ::regclass;
二、取消一个长时间执行的sql
2.1、终止查询,但是连接留在原地
SELECT pg_cancel_backend(pid);
2.2、终止查询,同时杀死连接
SELECT pg_terminate_backend(pid);
三、查看锁表的详细信息
SELECT 'select pg_terminate_backend(' || pid || ');' AS unlock_script
,pid
,state
,usename
,query
,query_start
,client_addr
FROM pg_stat_activity
WHERE pid IN (SELECT pid
FROM pg_locks l
,pg_class t
WHERE l.relation = t.oid
AND t.relkind = 'r'
AND t.relname = 'tzq_log_t');
直接把第一列unlock_script的数据复制出来,可以直接运行杀死连接。