Isso descartará as conexões existentes, exceto a sua:
Consulta
pg_stat_activity
e obtenha os valores de pid que você deseja eliminar e, em seguida, emita SELECT pg_terminate_backend(pid int)
para eles. PostgreSQL 9.2 e 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 e 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();
Depois de desconectar todos, você terá que desconectar e emitir o comando DROP DATABASE de uma conexão de outro banco de dados, também conhecido como aquele que você está tentando descartar.
Observe a renomeação do
procpid
coluna para pid
. Veja este tópico da lista de discussão.