Cela supprimera les connexions existantes à l'exception de la vôtre :
Requête pg_stat_activity
et obtenez les valeurs de pid que vous voulez tuer, puis émettez SELECT pg_terminate_backend(pid int)
à eux.
PostgreSQL 9.2 et supérieur :
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'TARGET_DB' -- ← change this to your DB
AND pid <> pg_backend_pid();
PostgreSQL 9.1 et versions antérieures :
SELECT pg_terminate_backend(pg_stat_activity.procpid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'TARGET_DB' -- ← change this to your DB
AND procpid <> pg_backend_pid();
Une fois que vous avez déconnecté tout le monde, vous devrez vous déconnecter et émettre la commande DROP DATABASE à partir d'une connexion à partir d'une autre base de données, c'est-à-dire pas celle que vous essayez de supprimer.
Notez le changement de nom du procpid
colonne en pid
. Voir ce fil de liste de diffusion.