sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan frigøres mulige Postgres rækkelåse?

Det er muligt at se låsene.

Her er en visning for at gøre det lidt nemmere end at bruge pg_locks direkte:

CREATE OR REPLACE VIEW public.active_locks AS 
 SELECT t.schemaname,
    t.relname,
    l.locktype,
    l.page,
    l.virtualtransaction,
    l.pid,
    l.mode,
    l.granted
   FROM pg_locks l
   JOIN pg_stat_all_tables t ON l.relation = t.relid
  WHERE t.schemaname <> 'pg_toast'::name AND t.schemaname <> 'pg_catalog'::name
  ORDER BY t.schemaname, t.relname;

Så vælger du bare fra visningen:

SELECT * FROM active_locks;

Og dræb det med:

SELECT pg_cancel_backend('%pid%');

Andre løsninger:http://wiki.postgresql.org/wiki/Lock_Monitoring



  1. Er der en måde at definere en navngivet konstant i en PostgreSQL-forespørgsel?

  2. serie i postgres bliver øget, selvom jeg tilføjede om konflikt gør ingenting

  3. Oracle dato til streng konvertering

  4. Opret en database i SQLite