Esto eliminará las conexiones existentes excepto la tuya:
Consulta pg_stat_activity
y obtenga los valores de pid que desea eliminar, luego emita SELECT pg_terminate_backend(pid int)
para ellos.
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 anteriores:
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, tendrá que desconectarse y emitir el comando DROP DATABASE desde una conexión de otra base de datos, no la que está tratando de eliminar.
Tenga en cuenta el cambio de nombre de procpid
columna a pid
. Vea este hilo de la lista de correo.