PostgreSQL - 删除数据库

在本章中,我们将讨论如何在 PostgreSQL 中删除数据库。 删除数据库有两种选择 −

  • 使用 DROP DATABASE,一个 SQL 命令。
  • 使用 dropdb 命令行可执行文件。
使用此操作之前要小心,因为删除现有数据库会导致数据库中存储的完整信息丢失。

使用 DROP DATABASE

此命令删除数据库。 它删除数据库的目录条目并删除包含数据的目录。 它只能由数据库所有者执行。 当您或其他任何人连接到目标数据库(连接到 postgres 或任何其他数据库以发出此命令)时,无法执行此命令。

语法

T下面给出了 DROP DATABASE 的语法 −

DROP DATABASE [ IF EXISTS ] name

参数

下表列出了参数及其说明。

S. No. Parameter & Description
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

参数

下表列出了参数及其说明

S. No. Parameter & Description
1

dbname

要删除的数据库的名称。

2

option

dropdb 接受的命令行参数。

选项

下表列出了 dropdb 接受的命令行参数 −

S. No. Option & Description
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 下找到)用户名来删除数据库。