pg_terminate_backend()を使用して接続を終了できます。この関数を使用するには、スーパーユーザーである必要があります。これは、すべてのオペレーティングシステムで同じように機能します。
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'
;
このクエリを実行する前に、新しい接続を回避するためにCONNECT権限を取り消す必要があります。
REVOKE CONNECT ON DATABASE dbname FROM PUBLIC, username;
Postgres 8.4-9.1を使用している場合は、pidの代わりにprocpidを使用します
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'
;