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

Lỗi thả cơ sở dữ liệu postgres:pq:không thể thả cơ sở dữ liệu hiện đang mở

Bởi vì, bạn đang cố thực thi dropDb lệnh trên cơ sở dữ liệu mà bạn có kết nối đang mở.

Theo tài liệu postgres:

Điều này có ý nghĩa, bởi vì khi bạn bỏ toàn bộ cơ sở dữ liệu, tất cả kết nối mở tham chiếu đến cơ sở dữ liệu đó sẽ trở nên không hợp lệ, Vì vậy, cách tiếp cận được đề xuất là kết nối với cơ sở dữ liệu khác và thực hiện lại lệnh này.

Nếu bạn đang gặp phải một tình huống, trong đó một máy khách khác được kết nối với cơ sở dữ liệu và bạn thực sự muốn hủy cơ sở dữ liệu, bạn có thể buộc ngắt kết nối tất cả máy khách khỏi cơ sở dữ liệu cụ thể đó.

Ví dụ:để buộc ngắt kết nối tất cả các máy khách khỏi cơ sở dữ liệu mydb :

Nếu PostgreSQL <9.2

SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname = 'mydb';

Khác

SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb';

Lưu ý: Lệnh này yêu cầu đặc quyền của người dùng cấp cao.

Sau đó, bạn có thể kết nối với cơ sở dữ liệu khác và chạy dropDb ra lệnh lại.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhận bảng và cột sở hữu một chuỗi

  2. Laravel 5.3 Các giao dịch hùng hồn và các hạn chế về khóa ngoại

  3. Làm cách nào để thực hiện các giao dịch cơ sở dữ liệu với psycopg2 / python db api?

  4. Quản lý đóng băng trong PostgreSQL

  5. Thay thế các ký tự bằng chuỗi nhiều ký tự