在本章中,我们将讨论如何在 PostgreSQL 中删除数据库。删除数据库有两个选项:
使用 DROP DATABASE,一个 SQL 命令。
使用dropdb命令行可执行文件。
使用此操作前要小心,因为删除现有数据库会导致数据库中存储的完整信息丢失。
使用 DROP 数据库
此命令删除数据库。它删除数据库的目录条目并删除包含数据的目录。它只能由数据库所有者执行。当您或其他任何人连接到目标数据库(连接到 postgres 或任何其他数据库以发出此命令)时,无法执行此命令。
句法
DROP DATABASE 的语法如下
DROP DATABASE [ IF EXISTS ] name
参数
该表列出了参数及其说明。
编号 | 参数及说明 |
---|---|
1 | IF EXISTS 如果数据库不存在,不要抛出错误。在这种情况下会发出通知。 |
2 | name 要删除的数据库的名称。 |
我们不能删除具有任何打开连接的数据库,包括我们自己来自psql或pgAdmin III的连接。如果我们想删除我们当前连接的数据库,我们必须切换到另一个数据库或模板1。因此,使用程序dropdb可能更方便,它是此命令的包装器。
例子
以下是一个简单的例子,它将从你的 PostgreSQL 模式中删除LNXDB
postgres=# DROP DATABASE LNXDB; 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 LNXDB Password for user postgress: ****
上面的命令删除数据库LNXDB。在这里,我使用了postgres(在 template1 的 pg_roles下找到)用户名来删除数据库。