Bạn có thể sử dụng pg_termina_backend () để hủy kết nối. Bạn phải là siêu người dùng để sử dụng chức năng này. Điều này hoạt động trên tất cả các hệ điều hành như nhau.
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'
;
Trước khi thực hiện truy vấn này, bạn phải KHÔI PHỤC đặc quyền KẾT NỐI để tránh các kết nối mới:
REVOKE CONNECT ON DATABASE dbname FROM PUBLIC, username;
Nếu bạn đang sử dụng Postgres 8.4-9.1, hãy sử dụng procpid thay vì 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'
;