Skip to content

Instantly share code, notes, and snippets.

@sebastianwebber
Last active May 8, 2023 12:44
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sebastianwebber/52039ad2ab7c039d22e7 to your computer and use it in GitHub Desktop.
Save sebastianwebber/52039ad2ab7c039d22e7 to your computer and use it in GitHub Desktop.
Show locked tables in postgreSQL
-- tested in PostgreSQL 8.4.4
DROP VIEW IF EXISTS vw_all_table_locks CASCADE;
CREATE VIEW vw_all_table_locks AS
SELECT
pg_namespace.nspname as schemaname,
pg_class.relname as tablename,
pg_locks.mode as lock_type,
age(now(),pg_stat_activity.query_start) AS time_running
FROM pg_class
JOIN pg_locks on pg_locks.relation = pg_class.oid
JOIN pg_database on pg_database.oid = pg_locks.database
JOIN pg_namespace on pg_namespace.oid = pg_class.relnamespace
JOIN pg_stat_activity on pg_stat_activity.procpid = pg_locks.pid
WHERE pg_class.relkind = 'r'
AND pg_database.datname = current_database();
DROP VIEW IF EXISTS vw_user_table_locks;
CREATE VIEW vw_user_table_locks AS
SELECT schemaname, tablename, lock_type, time_running FROM vw_all_table_locks
WHERE schemaname NOT LIKE 'pg_%';
@paunin
Copy link

paunin commented Apr 2, 2018

pg_stat_activity.procpid =>> pg_stat_activity.pid

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment