PostgreSQL - 刪除資料庫



本章將討論如何在PostgreSQL中刪除資料庫。刪除資料庫有兩種方法:

  • 使用DROP DATABASE SQL命令。
  • 使用dropdb 命令列可執行檔案。
在使用此操作之前務必小心,因為刪除現有資料庫會導致資料庫中儲存的全部資訊丟失。

使用DROP DATABASE

此命令刪除資料庫。它刪除資料庫的目錄條目並刪除包含資料的目錄。只有資料庫所有者才能執行此命令。當您或其他任何人連線到目標資料庫時,無法執行此命令(連線到postgres或任何其他資料庫來發出此命令)。

語法

DROP DATABASE的語法如下所示:

DROP DATABASE [ IF EXISTS ] name

引數

下表列出了引數及其說明。

序號 引數及說明
1

IF EXISTS

如果資料庫不存在,則不丟擲錯誤。在這種情況下會發出通知。

2

name

要刪除的資料庫的名稱。

我們無法刪除有任何開啟連線的資料庫,包括我們自己從psqlpgAdmin III的連線。如果要刪除當前連線的資料庫,必須切換到另一個數據庫或template1。因此,使用程式dropdb可能更方便,它是一個圍繞此命令的包裝器。

示例

以下是一個簡單的示例,它將從您的PostgreSQL模式中刪除testdb

postgres=# DROP DATABASE testdb;
postgres-# 

使用dropdb命令

PostgresSQL命令列可執行檔案dropdb是SQL命令DROP DATABASE的命令列包裝器。透過此實用程式刪除資料庫與透過其他訪問伺服器的方法之間沒有實際區別。dropdb銷燬現有的PostgreSQL資料庫。執行此命令的使用者必須是資料庫超級使用者或資料庫所有者。

語法

dropdb的語法如下所示:

dropdb  [option...] dbname

引數

下表列出了引數及其說明

序號 引數及說明
1

dbname

要刪除的資料庫的名稱。

2

option

dropdb接受的命令列引數。

選項

下表列出了dropdb接受的命令列引數:

序號 選項及說明
1

-e

顯示傳送到伺服器的命令。

2

-i

在執行任何破壞性操作之前發出驗證提示。

3

-V

列印dropdb版本並退出。

4

--if-exists

如果資料庫不存在,則不丟擲錯誤。在這種情況下會發出通知。

5

--help

顯示有關dropdb命令列引數的幫助資訊,然後退出。

6

-h host

指定伺服器正在執行的機器的主機名。

7

-p port

指定伺服器正在偵聽連線的TCP埠或本地UNIX域套接字副檔名。

8

-U username

連線使用的使用者名稱。

9

-w

從不發出密碼提示。

10

-W

強制dropdb在連線到資料庫之前提示輸入密碼。

11

--maintenance-db=dbname

指定要連線到的資料庫的名稱,以便刪除目標資料庫。

示例

以下示例演示了從作業系統命令提示符刪除資料庫:

dropdb -h localhost -p 5432 -U postgress testdb
Password for user postgress: ****

上述命令刪除資料庫testdb。在這裡,我使用了postgres(位於template1的pg_roles下)使用者名稱來刪除資料庫。

廣告