📜  PostgreSQL-DROP数据库

📅  最后修改于: 2020-11-26 06:16:42             🧑  作者: Mango


在本章中,我们将讨论如何在PostgreSQL中删除数据库。删除数据库有两个选项-

  • 使用DROP DATABASE,这是一个SQL命令。
  • 使用dropdb是命令行可执行文件。

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

使用DROP DATABASE

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

句法

下面给出了DROP DATABASE的语法-

DROP DATABASE [ IF EXISTS ] name

参量

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

S. No. Parameter & Description
1

IF EXISTS

Do not throw an error if the database does not exist. A notice is issued in this case.

2

name

The name of the database to remove.

我们不能删除具有任何开放连接的数据库,包括我们从psqlpgAdmin III建立的连接。如果要删除当前连接的数据库,必须切换到另一个数据库或template1 。因此,改用程序dropdb可能更方便,该程序是此命令的包装。

以下是一个简单的示例,该示例将从PostgreSQL模式中删除testdb-

postgres=# DROP DATABASE testdb;
postgres-# 

使用dropdb命令

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

句法

dropdb的语法如下所示-

dropdb  [option...] dbname

参量

下表列出了参数及其说明

S. No. Parameter & Description
1

dbname

The name of a database to be deleted.

2

option

command-line arguments, which dropdb accepts.

选件

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

S. No. Option & Description
1

-e

Shows the commands being sent to the server.

2

-i

Issues a verification prompt before doing anything destructive.

3

-V

Print the dropdb version and exit.

4

–if-exists

Do not throw an error if the database does not exist. A notice is issued in this case.

5

–help

Show help about dropdb command-line arguments, and exit.

6

-h host

Specifies the host name of the machine on which the server is running.

7

-p port

Specifies the TCP port or the local UNIX domain socket file extension on which the server is listening for connections.

8

-U username

User name to connect as.

9

-w

Never issue a password prompt.

10

-W

Force dropdb to prompt for a password before connecting to a database.

11

–maintenance-db=dbname

Specifies the name of the database to connect to in order to drop the target database.

以下示例演示了如何从OS命令提示符下删除数据库-

dropdb -h localhost -p 5432 -U postgress testdb
Password for user postgress: ****

上面的命令删除数据库testdb 。在这里,我使用了postgres (位于template1的pg_roles下)用户名删除数据库。