PostgreSQL - 删除数据库



本章将讨论如何在PostgreSQL中删除数据库。删除数据库有两种方法:

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

使用DROP DATABASE

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

语法

DROP DATABASE的语法如下所示:

DROP DATABASE [ IF EXISTS ] name

参数

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

序号 参数及说明
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

参数

下表列出了参数及其说明

序号 参数及说明
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下)用户名来删除数据库。

广告