sql >> Database >  >> RDS >> PostgreSQL

Hoe een PostgreSQL-database verwijderen als er actieve verbindingen mee zijn?

Hierdoor worden bestaande verbindingen verbroken, behalve die van jou:

Zoekopdracht pg_stat_activity en verkrijg de pid-waarden die u wilt doden, en geef vervolgens SELECT pg_terminate_backend(pid int) uit voor hen.

PostgreSQL 9.2 en hoger:

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 en lager:

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

Zodra je iedereen hebt losgekoppeld, moet je de verbinding verbreken en de opdracht DROP DATABASE geven vanaf een verbinding van een andere database, oftewel niet degene die je probeert te verbreken.

Let op de hernoeming van de procpid kolom naar pid . Zie deze mailinglijstthread.



  1. Hoe bepaal ik wanneer ik rechter joins/links joins of inner joins moet gebruiken Of hoe bepaal ik welke tafel aan welke kant staat?

  2. De database kan niet worden geopend omdat het versie 782 is. Deze server ondersteunt versie 706 en eerder. Een downgradepad wordt niet ondersteund

  3. Het navigatieformulier instellen als het standaardformulier in Microsoft Access

  4. Hoe installeer ik Azure Data Studio op een Mac