PostgreSQL - 删除数据库

  • 简述

    在本章中,我们将讨论如何在 PostgreSQL 中删除数据库。删除数据库有两种选择 -
    • 使用 DROP DATABASE,一个 SQL 命令。
    • 使用dropdb命令行可执行文件。
    使用此操作之前要小心,因为删除现有数据库会导致数据库中存储的完整信息丢失。

    使用删除数据库

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

    句法

    DROP DATABASE 的语法如下:
    
    DROP DATABASE [ IF EXISTS ] name
    

    参数

    下表列出了参数及其说明。
    S. 没有。 参数及说明
    1
    IF EXISTS
    如果数据库不存在,不要抛出错误。在这种情况下发出通知。
    2
    name
    要删除的数据库的名称。
    我们不能删除具有任何打开连接的数据库,包括我们自己来自psqlpgAdmin III的连接。如果我们想删除我们当前连接的数据库,我们必须切换到另一个数据库或模板1。因此,使用程序dropdb可能更方便,它是该命令的包装器。

    例子

    下面是一个简单的例子,将删除testdb来自您的 PostgreSQL 架构 -
    
    postgres=# DROP DATABASE testdb;
    postgres-# 
    
  • 使用 dropdb 命令

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

    句法

    dropdb的语法如下所示 -
    
    dropdb  [option...] dbname
    

    参数

    下表列出了参数及其说明
    S. 没有。 参数及说明
    1
    dbname
    要删除的数据库的名称。
    2
    option
    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 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 下找到)删除数据库的用户名。