Spowoduje to odrzucenie istniejących połączeń oprócz Twojego:
Zapytanie pg_stat_activity
i pobierz wartości pid, które chcesz zabić, a następnie wydaj SELECT pg_terminate_backend(pid int)
do nich.
PostgreSQL 9.2 i nowsze:
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 i starsze:
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();
Po rozłączeniu wszystkich będziesz musiał się rozłączyć i wydać polecenie DROP DATABASE z połączenia z inną bazą danych, czyli tą, którą próbujesz usunąć.
Zwróć uwagę na zmianę nazwy procpid
kolumna do pid
. Zobacz ten wątek listy mailingowej.