PostgreSQL刪除數據庫
在本章中,我們將討論如何刪除在PostgreSQL數據庫。有兩個選擇方法刪除數據庫:
-
使用DROP DATABASE從 SQL命令.
-
使用dropdb 一個命令行可執行文件.
使用此操作之前要小心,因為會導致失去所有存儲在數據庫中的所有信息。
使用 DROP DATABASE
此命令可刪除數據庫。它消除了目錄數據庫並刪除包含數據的目錄條目。它隻能由數據庫所有者執行。此命令不能執行,而或其他人連接到目標數據庫。 (連接到Postgres或任何其他數據庫發出此命令。)
語法
DROP DATABASE 的語法如下:
DROP DATABASE [ IF EXISTS ] name
參數
下表列出了參數及其說明.
參數 | 描述 |
---|---|
IF EXISTS | Do not throw an error if the database does not exist. A notice is issued in this case. |
name | The name of the database to remove. |
我們不能刪除一個數據庫有任何打開的連接,包括我們自己的的連接frompsql或pgAdmin III 。如果我們要刪除當前連接到的數據庫,必須切換到另一個數據庫或template1。因此,它可能是更方便使用程序DROPDB來代替,這是一個包裝這個命令
實例
下麵是一個簡單的例子,這將刪除PostgreSQL模式testdb :
postgres=# DROP DATABASE testdb; postgres-#
使用DROPDB命令
PostgreSQL的命令行可執行DROPDB圍繞SQL命令DROP DATABASE命令行包裝。通過此實用工具刪除數據庫和通過其他方法訪問服務器之間有冇有實際的區彆。 DROPDB破壞現有PostgreSQL數據庫。執行此命令的用戶必須是數據庫超級用戶或數據庫所有者。
語法
createdb 的語法如下所示:
dropdb [option...] dbname
參數
下表列出了參數,對它們的描述。
參數 | 描述 |
---|---|
dbname | The name of a database to be deleted. |
option | command-line arguments which dropdb accepts. |
選項
下表列出了命令行參數DROPDB接收:
選項 | 描述 |
---|---|
-e | Shows the commands being sent to the server. |
-i | Issues a verification prompt before doing anything destructive. |
-V | Print the dropdb version and exit. |
--if-exists | Do not throw an error if the database does not exist. A notice is issued in this case. |
--help | Show help about dropdb command line arguments, and exit. |
-h host | Specifies the host name of the machine on which the server is running. |
-p port | Specifies the TCP port or the local Unix domain socket file extension on which the server is listening for connections. |
-U username | User name to connect as. |
-w | Never issue a password prompt. |
-W | Force dropdb to prompt for a password before connecting to a database. |
--maintenance-db=dbname | Specifies the name of the database to connect to in order to drop the target database. |
實例
下麵的例子演示從OS命令提示符,刪除數據庫:
dropdb -h localhost -p 5432 -U postgress testdb Password for user postgress: ****
上麵的命令刪除數據庫TESTDB。在這裡使用postgres(template1 pg_roles下找到)用戶名,刪除數據庫。