Table de déverrouillage PostgreSQL


1. Afficher la situation de verrouillage d'une seule table

SELECT relation ::regclass
      ,t.*
  FROM pg_locks t
 WHERE relation = 'tzq_log_t' ::regclass;

2. Annuler un sql de longue durée

2.1. Terminer la requête, mais la connexion reste en place

SELECT pg_cancel_backend(pid);

2.2. Terminer la requête et couper la connexion en même temps

SELECT pg_terminate_backend(pid);

Troisièmement, affichez les informations détaillées de la table de verrouillage

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');

Copiez directement les données dans la première colonne de unlock_script, et vous pouvez directement exécuter et tuer la connexion.

おすすめ

転載: blog.csdn.net/tttzzzqqq2018/article/details/132289371