Điều này sẽ loại bỏ các kết nối hiện có ngoại trừ của bạn:
Truy vấn pg_stat_activity
và nhận các giá trị pid bạn muốn giết, sau đó cấp SELECT pg_terminate_backend(pid int)
cho chúng.
PostgreSQL 9.2 trở lên:
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 trở xuống:
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();
Khi bạn ngắt kết nối tất cả mọi người, bạn sẽ phải ngắt kết nối và đưa ra lệnh DROP DATABASE từ một kết nối từ cơ sở dữ liệu khác, không phải là cơ sở dữ liệu mà bạn đang cố gắng bỏ.
Lưu ý đổi tên của procpid
cột thành pid
. Xem chủ đề danh sách gửi thư này .