Heim > Backend-Entwicklung > Golang > Wie lösche ich eine Postgres-Datenbank, mit der Sie gerade verbunden sind?

Wie lösche ich eine Postgres-Datenbank, mit der Sie gerade verbunden sind?

Mary-Kate Olsen
Freigeben: 2024-11-19 20:18:03
Original
324 Leute haben es durchsucht

How to Drop a Postgres Database You're Currently Connected To?

Eine verbundene Datenbank in Postgres löschen

Beim Versuch, eine Datenbank zu löschen, mit der Sie derzeit verbunden sind, ist ein Fehler aufgetreten: „pq: Die aktuell geöffnete Datenbank kann nicht gelöscht werden. Dieser Fehler ist auf das erwartete Verhalten in Postgres zurückzuführen, das das Löschen einer Datenbank mit einer aktiven Verbindung dazu verbietet.

Dieses Verhalten ist sinnvoll, da das Löschen einer Datenbank alle offenen Verbindungen, die auf sie verweisen, ungültig macht. Um eine Datenbank erfolgreich zu löschen, müssen Sie sicherstellen, dass keine aktiven Verbindungen vorhanden sind.

Empfohlener Ansatz

Der empfohlene Ansatz besteht darin, eine Verbindung zu einer anderen Datenbank herzustellen und den Befehl DROP DATABASE auszuführen aus dieser Verbindung. Dadurch wird sichergestellt, dass Sie keine offenen Verbindungen zu der Datenbank haben, die Sie trennen möchten.

Zwangsweises Trennen von Clients

In Situationen, in denen andere Clients mit der Datenbank verbunden sind Sie müssen sie fallen lassen, Sie können sie gewaltsam trennen. Beachten Sie, dass hierfür Superuser-Rechte erforderlich sind.

Für PostgreSQL-Versionen vor 9.2:

SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname = 'mydb';
Nach dem Login kopieren

Für PostgreSQL-Versionen 9.2 und höher:

SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb';
Nach dem Login kopieren

Sobald alle Clients zwangsweise getrennt wurden, können Sie eine Verbindung zu einer anderen Datenbank herstellen und ausführen Führen Sie erneut den Befehl DROP DATABASE aus.

Zusätzlicher Hinweis

In Ihrem spezifischen Codebeispiel versuchen Sie, die Verbindung zu schließen, nachdem Sie den Befehl DROP DATABASE ausgeführt haben. Dieser Schritt ist unnötig und kann zu unerwartetem Verhalten führen. Stellen Sie einfach eine Verbindung zu einer anderen Datenbank her, bevor Sie den Befehl DROP DATABASE ausführen, und Sie werden die Verbindung zu der Datenbank, die Sie getrennt haben, erfolgreich schließen.

Das obige ist der detaillierte Inhalt vonWie lösche ich eine Postgres-Datenbank, mit der Sie gerade verbunden sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage