PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm thế nào để loại bỏ cơ sở dữ liệu PostgreSQL nếu có các kết nối đang hoạt động với nó?

Điều này sẽ loại bỏ các kết nối hiện có ngoại trừ kết nối của bạn:

Truy vấn pg_stat_activity và lấy các giá trị pid bạn muốn hủy, sau đó phát hành SELECT pg_terminate_backend(pid int) cho họ.

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();

Sau khi ngắt kết nối vớ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ừ một cơ sở dữ liệu khác không phải cơ sở dữ liệu mà bạn đang cố gắng loại bỏ.

Lưu ý đổi tên của procpid cột thành pid . Xem chuỗi danh sách gửi thư này.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nối nhiều hàng kết quả của một cột thành một, nhóm theo cột khác

  2. Lỗi khi ánh xạ các mảng postgres trong Spring JPA

  3. Làm thế nào để sử dụng ALIAS trong mệnh đề PostgreSQL ORDER BY?

  4. Cách Cosh () hoạt động trong PostgreSQL

  5. Các tính năng PostgreSQL Enterprise mới và đang phát triển với các bản phát hành gần đây