Vous pouvez utiliser pg_terminate_backend() pour tuer une connexion. Vous devez être superutilisateur pour utiliser cette fonction. Cela fonctionne sur tous les systèmes d'exploitation de la même manière.
SELECT
pg_terminate_backend(pid)
FROM
pg_stat_activity
WHERE
-- don't kill my own connection!
pid <> pg_backend_pid()
-- don't kill the connections to other databases
AND datname = 'database_name'
;
Avant d'exécuter cette requête, vous devez RÉVOQUER les privilèges CONNECT pour éviter de nouvelles connexions :
REVOKE CONNECT ON DATABASE dbname FROM PUBLIC, username;
Si vous utilisez Postgres 8.4-9.1, utilisez procpid au lieu de pid
SELECT
pg_terminate_backend(procpid)
FROM
pg_stat_activity
WHERE
-- don't kill my own connection!
procpid <> pg_backend_pid()
-- don't kill the connections to other databases
AND datname = 'database_name'
;