在本章中,我们将讨论如何在PostgreSQL中删除数据库.有两种方法可以删除数据库 :
使用DROP DATABASE,一个SQL命令.
使用 dropdb 命令行可执行文件.
在使用此操作之前要小心,因为删除现有数据库会导致丢失存储在数据库中的完整信息.
使用DROP DATABASE
此命令删除数据库.它删除数据库的目录条目,并删除包含数据的目录.它只能由数据库所有者执行.当您或其他任何人连接到目标数据库时,无法执行此命令(连接到postgres或任何其他数据库以发出此命令).
语法
DROP DATABASE的语法在下面给出 :
DROP DATABASE [IF EXISTS] name
参数
该表列出了参数及其描述.
S.否. | 参数&描述 |
---|---|
1 | IF EXISTS 如果数据库不存在,请不要抛出错误.在这种情况下会发出通知. |
2 | 名称 要删除的数据库的名称. |
我们不能删除任何打开连接的数据库,包括我们自己的连接 psql 或 pgAdmin III .如果我们要删除当前连接的数据库,我们必须切换到另一个数据库或 template1 .因此,使用程序 dropdb 可能更方便,它是此命令的包装.
示例
以下是一个简单的示例,它将从PostgreSQL架构中删除 testdb :
postgres =# DROP DATABASE testdb; postgres-#
使用dropdb命令
PostgresSQL命令行可执行文件 dropdb 是SQL命令 DROP DATABASE 的命令行包装器.通过此实用程序删除数据库之间以及通过其他方法访问服务器之间没有任何有效区别. dropdb破坏现有的PostgreSQL数据库.执行此命令的用户必须是数据库超级用户或数据库的所有者.
语法
dropdb的语法如下所示 :
dropdb [option ...] dbname
参数
下表列出了参数及其描述
S.否. | 参数&描述 |
---|---|
1 | dbname 要删除的数据库的名称. |
2 | 选项 命令行参数,dropdb接受. |
选项
下表列出了命令行参数dropdb接受 :
S.不. | 选项&描述 |
---|---|
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 永远不要发出密码专业版mpt. |
10 | -W 强制dropdb在连接数据库之前提示输入密码. |
11 | - maintenance-db = dbname 指定要连接的数据库的名称以便删除目标数据库. |
示例
以下示例演示从OS命令提示符中删除数据库 :
dropdb -h localhost -p 5432 -U postgress testdbPassword for user postgress: ****
以上命令删除数据库 testdb .在这里,我使用了 postgres (在template1的pg_roles下找到)用户名来删除数据库.