PostgreSQL 删除数据库
在本章中,我们将讨论如何在PostgreSQL中删除数据库。有两种方法可以删除数据库−
- 使用 DROP DATABASE,一个SQL命令。
- 使用 dropdb 一个命令行可执行文件。
在使用此操作之前,请小心,因为删除现有数据库将导致数据库中存储的全部信息丢失。
使用 DROP DATABASE
该命令用于删除数据库。它删除数据库的目录条目并删除包含数据的目录。它只能由数据库所有者执行。在执行此命令时,您或其他任何人都不能连接到目标数据库(连接到postgres或任何其他数据库以执行此命令)。
语法
DROP DATABASE的语法如下−
DROP DATABASE [ IF EXISTS ] name
参数
下表列出了参数及其描述。
序号 | 参数和描述 |
---|---|
1 | IF EXISTS 如果数据库不存在,则不会报错。在这种情况下会发出一个通知。 |
2 | name 要删除的数据库的名称。 |
我们不能删除正在被使用的数据库,包括我们自己通过 psql 或 pgAdmin 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下找到)用户名来删除数据库。