Detta kommer att ta bort befintliga anslutningar förutom dina:
Fråga pg_stat_activity
och hämta de pid-värden du vill döda, utfärda sedan SELECT pg_terminate_backend(pid int)
till dem.
PostgreSQL 9.2 och senare:
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 och senare:
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();
När du kopplar bort alla måste du koppla från och utfärda kommandot DROP DATABASE från en anslutning från en annan databas, även om den inte är den du försöker släppa.
Notera bytet av procpid
kolumnen till pid
. Se denna e-postlistatråd.