PostgreSQL - DROP-Datenbank
In diesem Kapitel wird erläutert, wie Sie die Datenbank in PostgreSQL löschen. Es gibt zwei Möglichkeiten, eine Datenbank zu löschen:
- Verwenden von DROP DATABASE, einem SQL-Befehl.
- Verwenden von dropdb eine ausführbare Befehlszeilendatei.
Seien Sie vorsichtig, bevor Sie diesen Vorgang ausführen, da das Löschen einer vorhandenen Datenbank zum Verlust vollständiger Informationen führen würde, die in der Datenbank gespeichert sind.
DROP DATABASE verwenden
Dieser Befehl löscht eine Datenbank. Es entfernt die Katalogeinträge für die Datenbank und löscht das Verzeichnis, das die Daten enthält. Es kann nur vom Datenbankeigentümer ausgeführt werden. Dieser Befehl kann nicht ausgeführt werden, während Sie oder eine andere Person mit der Zieldatenbank verbunden sind (stellen Sie eine Verbindung zu postgres oder einer anderen Datenbank her, um diesen Befehl auszuführen).
Syntax
Die Syntax für DROP DATABASE ist unten angegeben -
DROP DATABASE [ IF EXISTS ] name
Parameter
In der Tabelle sind die Parameter mit ihren Beschreibungen aufgeführt.
S. Nr. | Parameter & Beschreibung |
---|---|
1 | IF EXISTS Geben Sie keinen Fehler aus, wenn die Datenbank nicht vorhanden ist. In diesem Fall wird ein Hinweis ausgegeben. |
2 | name Der Name der zu entfernenden Datenbank. |
Wir können keine Datenbank löschen , die offene Verbindungen hat, einschließlich unserer eigenen Verbindung von psql oder pgAdmin III . Wir müssen zu einer anderen Datenbank oder Vorlage1 wechseln, wenn wir die Datenbank löschen möchten, mit der wir derzeit verbunden sind. Daher ist es möglicherweise bequemer, stattdessen das Programm dropdb zu verwenden, bei dem es sich um einen Wrapper um diesen Befehl handelt.
Beispiel
Das Folgende ist ein einfaches Beispiel, das gelöscht wird testdb aus Ihrem PostgreSQL-Schema -
postgres=# DROP DATABASE testdb;
postgres-#
Dropdb-Befehl verwenden
PostgresSQL-Befehlszeile ausführbar dropdbist ein Befehlszeilen-Wrapper um den SQL-Befehl DROP DATABASE . Es gibt keinen effektiven Unterschied zwischen dem Löschen von Datenbanken über dieses Dienstprogramm und über andere Methoden für den Zugriff auf den Server. dropdb zerstört eine vorhandene PostgreSQL-Datenbank. Der Benutzer, der diesen Befehl ausführt, muss ein Datenbank-Superuser oder der Eigentümer der Datenbank sein.
Syntax
Die Syntax für dropdb lautet wie folgt :
dropdb [option...] dbname
Parameter
In der folgenden Tabelle sind die Parameter mit ihren Beschreibungen aufgeführt
S. Nr. | Parameter & Beschreibung |
---|---|
1 | dbname Der Name einer zu löschenden Datenbank. |
2 | option Befehlszeilenargumente, die dropdb akzeptiert. |
Optionen
In der folgenden Tabelle sind die Befehlszeilenargumente aufgeführt, die dropdb akzeptiert -
S. Nr. | Option & Beschreibung |
---|---|
1 | -e Zeigt die Befehle an, die an den Server gesendet werden. |
2 | -i Gibt eine Überprüfungsaufforderung aus, bevor destruktive Aktionen ausgeführt werden. |
3 | -V Drucken Sie die Dropdb-Version und beenden Sie sie. |
4 | --if-exists Geben Sie keinen Fehler aus, wenn die Datenbank nicht vorhanden ist. In diesem Fall wird ein Hinweis ausgegeben. |
5 | --help Zeigen Sie Hilfe zu Dropdb-Befehlszeilenargumenten an und beenden Sie das Programm. |
6 | -h host Gibt den Hostnamen des Computers an, auf dem der Server ausgeführt wird. |
7 | -p port Gibt den TCP-Port oder die lokale UNIX-Domain-Socket-Dateierweiterung an, auf der der Server auf Verbindungen wartet. |
8 | -U username Benutzername, unter dem eine Verbindung hergestellt werden soll. |
9 | -w Geben Sie niemals eine Passwortabfrage aus. |
10 | -W Erzwingen Sie, dass dropdb nach einem Kennwort fragt, bevor Sie eine Verbindung zu einer Datenbank herstellen. |
11 |
--maintenance-db=dbname Gibt den Namen der Datenbank an, zu der eine Verbindung hergestellt werden soll, um die Zieldatenbank zu löschen. |
Beispiel
Das folgende Beispiel zeigt das Löschen einer Datenbank an der Eingabeaufforderung des Betriebssystems.
dropdb -h localhost -p 5432 -U postgress testdb
Password for user postgress: ****
Der obige Befehl löscht die Datenbank testdb. Hier habe ich das benutztpostgres (gefunden unter den pg_roles von template1) Benutzername zum Löschen der Datenbank.