PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Fehler beim Löschen der Postgres-Datenbank:pq:Die aktuell geöffnete Datenbank kann nicht gelöscht werden

Weil Sie versuchen, dropDb auszuführen Befehl für die Datenbank, zu der Sie eine offene Verbindung haben.

Laut Postgres-Dokumentation:

Dies ist sinnvoll, da beim Löschen der gesamten Datenbank alle offenen Verbindungen, die auf diese Datenbank verweisen, ungültig werden. Daher besteht die empfohlene Vorgehensweise darin, eine Verbindung zu einer anderen Datenbank herzustellen und diesen Befehl erneut auszuführen.

Wenn Sie mit einer Situation konfrontiert sind, in der ein anderer Client mit der Datenbank verbunden ist und Sie die Datenbank wirklich löschen möchten, können Sie alle Clients zwangsweise von dieser bestimmten Datenbank trennen.

Zum Beispiel, um alle Clients zwangsweise von der Datenbank mydb zu trennen :

Bei PostgreSQL <9.2

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

Sonst

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

Hinweis: Dieser Befehl erfordert Superuser-Privilegien.

Dann können Sie sich mit einer anderen Datenbank verbinden und dropDb ausführen Befehl erneut.