Esto eliminará las conexiones existentes, excepto las suyas:
Consulte pg_stat_activity
y obtenga los valores pid que desea eliminar, luego emítalos SELECT pg_terminate_backend(pid int)
.
PostgreSQL 9.2 y superior:
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 y siguientes:
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();
Una vez que desconecte a todos, deberá desconectar y emitir el comando DROP DATABASE desde una conexión desde otra base de datos, es decir, no la que está tratando de eliminar.
Tenga en cuenta el cambio de nombre de la procpid
columna a pid
. Vea este hilo de la lista de correo .