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

Jak usunąć bazę danych PostgreSQL, jeśli są z nią aktywne połączenia?

Spowoduje to odrzucenie istniejących połączeń oprócz Twojego:

Zapytanie pg_stat_activity i pobierz wartości pid, które chcesz zabić, a następnie wydaj SELECT pg_terminate_backend(pid int) do nich.

PostgreSQL 9.2 i nowsze:

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 i starsze:

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

Po rozłączeniu wszystkich będziesz musiał się rozłączyć i wydać polecenie DROP DATABASE z połączenia z inną bazą danych, czyli tą, którą próbujesz usunąć.

Zwróć uwagę na zmianę nazwy procpid kolumna do pid . Zobacz ten wątek listy mailingowej.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapowiedź repmgr 2.0RC2

  2. Zmienna tabeli PostgreSQL

  3. PostgreSQL zyskuje na popularności:wyniki z Postgres 2018 i trendy 2019

  4. Big Data z PostgreSQL i Apache Spark

  5. PostgreSQL nie akceptuje aliasów kolumn w klauzuli WHERE