postgresql 查询锁表并解锁
1、查询被锁的pid以及语句, state这列如果显示成 idle in transaction 就表示被锁了
select pid, state, usename, query, query_start from pg_stat_activity where pid in ( select pid from pg_locks l join pg_class t on l.relation = t.oid and t.relkind = 'r' );
2、解锁: 拿着上面查询出的pid放入下面的语句中
// 温柔一点的(只kill掉select) SELECT pg_cancel_backend(pid) // 暴力一点的(kill掉 select、update、insert、delete) SELECT pg_terminate_backend(pid)
最后附上老外的一个链接
只要你不觉得尴尬,那尴尬的就是别人