PostgreSQL DROP 数据库


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

  • 使用 DROP DATABASE,一个 SQL 命令。

  • 使用 dropdb 一个命令行可执行文件。

使用此操作前要小心,因为删除现有数据库会导致数据库中存储的完整信息丢失。

使用 DROP DATABASE

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

语法

DROP DATABASE 的语法如下:

DROP DATABASE [ IF EXISTS ] name

参数

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

序号参数及说明
1

IF EXISTS

如果数据库不存在,不要抛出错误。在这种情况下会发出通知。

2

name

要删除的数据库的名称。

我们不能删除有任何打开连接的数据库,包括我们自己的连接 psql or pgAdmin III .我们必须切换到另一个数据库或 模板1 如果我们想删除我们当前连接的数据库。因此,使用该程序可能更方便 dropdb 相反,它是此命令的包装器。

下面是一个简单的例子,它将删除testdb从你的 PostgreSQL 模式:

postgres=# DROP DATABASE testdb;
postgres-#

使用 dropdb 命令


PostgresSQL 命令行可执行文件dropdb是围绕 SQL 命令的命令行包装器 删除数据库 .通过此实用程序删除数据库与通过其他访问服务器的方法删除数据库之间没有有效区别。 dropdb 会破坏现有的 PostgreSQL 数据库。执行此命令的用户必须是数据库超级用户或数据库所有者。

语法

语法为 dropdb 如下图:

dropdb  [option...] dbname

参数

下表列出了参数及其说明

序号参数及说明
1

dbname

要删除的数据库的名称。

2

option

dropdb 接受的命令行参数。

Options

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

序号选项和说明
1

-e

显示发送到服务器的命令。

2

-i

在执行任何破坏性操作之前发出验证提示。

3

-V

打印 dropdb 版本并退出。

4

--if-exists

如果数据库不存在,不要抛出错误。在这种情况下会发出通知。

5

--help

显示有关 dropdb 命令行参数的帮助,然后退出。

6

-h host

指定运行服务器的机器的主机名。

7

-p port

指定服务器正在侦听连接的 TCP 端口或本地 UNIX 域套接字文件扩展名。

8

-U 用户名

要连接的用户名。

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 下找到)用户名以删除数据库。