PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Błąd bazy danych Postgres drop:pq:nie można usunąć aktualnie otwartej bazy danych

Ponieważ próbujesz wykonać dropDb polecenie na bazie danych, z którą masz otwarte połączenie.

Zgodnie z dokumentacją postgres:

Ma to sens, ponieważ gdy usuniesz całą bazę danych, wszystkie otwarte połączenia odwołujące się do tej bazy danych stają się nieważne, więc zalecanym podejściem jest połączenie z inną bazą danych i ponowne wykonanie tego polecenia.

Jeśli masz do czynienia z sytuacją, w której inny klient jest podłączony do bazy danych i naprawdę chcesz usunąć bazę danych, możesz wymusić odłączenie wszystkich klientów od tej konkretnej bazy danych.

Na przykład, aby wymusić odłączenie wszystkich klientów od bazy danych mydb :

Jeśli PostgreSQL <9.2

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

Inne

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

Uwaga: To polecenie wymaga uprawnień superużytkownika.

Następnie możesz połączyć się z inną bazą danych i uruchomić dropDb polecenie ponownie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql:Zapytanie zwracające nieprawidłowe dane

  2. Refaktoryzuj funkcję PL/pgSQL, aby zwrócić wyniki różnych zapytań SELECT

  3. Ograniczenie Postgresa dla unikalnego zakresu dat

  4. Nie znaleziono liczby porządkowej podczas uruchamiania narzędzia Diesel CLI

  5. Czy mogę poprosić Postgresql o ignorowanie błędów w transakcji?