-- 替换 'AppUserApple' 为你的表名(注意大小写,需加引号)
SELECT
pg_stat_activity.pid, -- 进程ID(解锁用)
pg_stat_activity.usename, -- 用户名
pg_stat_activity.datname, -- 数据库名
pg_class.relname AS locked_table, -- 被锁定的表名
pg_locks.mode, -- 锁模式
pg_stat_activity.state, -- 进程状态
pg_stat_activity.query -- 导致锁定的SQL(可选)
FROM pg_locks
JOIN pg_class ON pg_locks.relation = pg_class.oid
JOIN pg_stat_activity ON pg_locks.pid = pg_stat_activity.pid
WHERE
pg_class.relname = 'AppUserApple' -- 目标表名(无需双引号,自动匹配大小写)
AND pg_stat_activity.wait_event IS NOT NULL; -- 只显示阻塞的进程
批量解锁
-- 替换 'AppUserApple' 为你的表名,执行后自动批量解锁
SELECT
pg_terminate_backend(pg_stat_activity.pid) AS 终止结果,
pg_stat_activity.pid AS 被终止进程ID
FROM pg_locks
JOIN pg_class ON pg_locks.relation = pg_class.oid
JOIN pg_stat_activity ON pg_locks.pid = pg_stat_activity.pid
WHERE pg_class.relname = 'AppUserApple';