Úvod
PostgreSQL nabízí dvě metody příkazového řádku pro zrušení databáze – pomocí DROP DATABASE
příkaz nebo obslužný program shellu.
Odstranění nepoužívaných databází je dobrou praxí a pomáhá udržovat pracovní prostor čistý. Mějte však na paměti, že smazáním existující databáze PostgreSQL odstraníte všechny položky katalogu a data pro tuto databázi.
Pokračujte ve čtení a zjistěte, jak zrušit databázi v PostgreSQL.
Předpoklady
- Nainstalovaný a nakonfigurovaný PostgreSQL 10 nebo vyšší (postupujte podle našeho průvodce pro Ubuntu nebo Windows; pokud je již nainstalován, zkontrolujte verzi PostgreSQL v systému).
- Přístup k terminálu s právy sudo.
Prohlášení DROP DATABASE
Důležité :Smazat databázi může POUZE vlastník databáze.
První metodou, jak odstranit databázi PostgreSQL, je použít následující příkaz SQL:
DROP DATABASE <database name>;
Příkaz odstraní adresář obsahující databázové informace a položky katalogu. Pouze vlastník databáze může spustit DROP DATABASE
příkaz. Pokud někdo aktuálně používá databázi, příkaz se nespustí.
Chcete-li zjistit, jak DROP DATABASE
funguje, proveďte následující:
1. Otevřete terminál (CTRL +ALT +T ).
2. Připojte se k PostgreSQL:
sudo -i -u postgres psql
3. Vytvořte databázi pro příklad:
CREATE DATABASE example;
Terminál vytiskne provedený příkaz.
4. Seznam všech databází s:
\l
V seznamu se zobrazí databáze z předchozího kroku.
5. Zrušte databázi pomocí:
DROP DATABASE example;
Výstup zobrazuje provedený příkaz.
6. Vypište znovu všechny databáze:
\l
Vzorová databáze se již nezobrazuje v seznamu.
Jestli existuje
IF EXISTS
možnost je otevřena pro všechny verze, kde je DROP DATABASE
je k dispozici. Úplná syntaxe příkazu s IF EXISTS
možnost je následující:
DROP DATABASE IF EXISTS <database name>;
Volba nejprve zkontroluje, zda databáze existuje, než ji smaže. Pokud databáze existuje, příkaz databázi zruší. Pokud však databáze neexistuje, příkaz vytiskne informativní zprávu.
Chcete-li otestovat, jak příkaz funguje, postupujte podle následujících kroků:
1. Vytvořte ukázkovou databázi:
CREATE DATABASE example;
2. Zrušte databázi pomocí IF EXISTS
možnost:
DROP DATABASE IF EXISTS example;
Výsledek je stejný jako při použití DROP DATABASE
pokud databáze existuje.
3. Databáze již není dostupná. Spusťte příkaz znovu, abyste viděli výstup:
DROP DATABASE IF EXISTS example;
Vytiskne se zpráva oznamující, že databáze neexistuje.
4. Chcete-li vidět rozdíl mezi použitím IF EXISTS
a vynecháte-li volbu, spusťte následující příkaz:
DROP DATABASE example;
Pomocí DROP DATABASE
bez IF EXISTS
volba na neexistující databázi vyvolá chybovou zprávu.
S (SILU)
WITH (FORCE)
možnost je k dispozici v PostgreSQL verze 13 a vyšší.
DROP DATABASE
metoda neodstraní databázi, pokud se používá. Pokud je databáze používána, terminál vypíše chybu, že relace databáze je otevřená.
Přidejte WITH (FORCE)
možnost násilně ukončit relaci a odstranit databázi:
DROP DATABASE <database name> WITH (FORCE);
Pokud je to možné, Postgres zavře relaci uživatele a násilně smaže databázi.
Nástroj dropdb
Obslužný program prostředí dropdb je obal pro DROP DATABASE
příkaz. Ve skutečnosti jsou obě metody totožné. Dropdb však nabízí další možnosti včetně vzdáleného odebrání databází.
Základní syntaxe je:
dropdb <connection parameters> <options> <database name>
Možnosti
Níže uvedená tabulka ukazuje všechny možné možnosti při použití nástroje dropdb.
Možnost | Typ | Popis |
---|---|---|
-e --echo | Možnost | Vytiskne příkazy, které dropdb posílá na server. |
-f --force | Možnost | Pokusí se ukončit všechna aktuální připojení před zrušením databáze. |
-i --interactive | Možnost | Vyzve k ověření před provedením odstranění databáze. |
-V --version | Možnost | Konzola vytiskne verzi nástroje. |
--if-exists | Možnost | Pokud databáze neexistuje, vytiskne místo chyby upozornění. |
-? --help | Možnost | Zobrazit nabídku nápovědy. |
-h <host> --host=<host> | Parametr připojení | Určuje název hostitele počítače, na kterém běží server. |
-p <port> --port=<port> | Parametr připojení | Určuje port TCP, na kterém server naslouchá. |
-U <username> --username <username> | Parametr připojení | Připojte se jako určený uživatel. |
-w --no-password | Parametr připojení | Nikdy nevystavujte výzvu k zadání hesla. Užitečné pro dávkové a skriptové úlohy, když není přítomen žádný uživatel. |
-W --password | Parametr připojení | Vynutit výzvu k zadání hesla. Bez této možnosti server ztratí pokus o připojení, pokud je nutné heslo. |
--maintenance-db=<database name> | Parametr připojení | Volba určuje připojení názvu databáze. |
Zkuste například následující příkaz, abyste viděli, jak dropdb funguje s -i
a -e
možnosti:
dropdb -i -e example
Program před smazáním požaduje potvrzení kvůli -i
tag.
Stiskněte y potvrdit. Program vytiskne vygenerované příkazy na server. Protože databáze neexistuje, program vyvolá chybu a ukončí se.