PostgreSQL 使用命令行删除数据库

⚡ 智能摘要

PostgreSQL DROP DATABASE 命令会永久删除数据库,包括其所有目录条目和数据文件。您可以从 psql shell 运行此命令,也可以在 pgAdmin 中以可视方式删除数据库,或者使用 dropdb 命令远程删除数据库。

  • ⚠️ 永久行动: DROP DATABASE 会删除所有目录条目和数据目录,因此该操作无法撤销。
  • 🔒 仅限业主: 只有数据库所有者才能删除它,并且任何活动会话都不能连接到目标数据库。
  • 💻 SQL Shell: 在 psql 中,连接到不同的数据库后运行 DROP DATABASE name,然后使用 \l 确认删除。
  • 🛡️ IF EXISTS 子句: 添加 IF EXISTS 语句后,当数据库不存在时,会返回警告而不是错误。
  • 🖱️ pgAdmin 图形用户界面: 在对象树中右键单击数据库,选择“删除/丢弃”,然后确认以可视方式将其删除。
  • 🌐 dropdb 命令: dropdb 命令行实用程序可远程删除数据库,并提供主机、端口和确认选项。

PostgreSQL 删除数据库

删除数据库 PostgreSQL

删除数据库 in PostgreSQL 是永久删除所有目录条目和数据目录的语句。只有数据库所有者才能执行此命令。当有人连接到目标数据库时,无法执行此命令。您需要连接到其他数据库才能执行 DROP DATABASE 命令。

因此,执行此操作时应格外小心。

PostgreSQL DROP DATABASE语法:

DROP DATABASE [IF EXISTS] name;

服务:-

  • IF EXISTS:这是一个可选参数。如果数据库不存在,则显示警告而不是错误
  • name:输入要删除的数据库名称

让我们来看看 PostgreSQL 删除数据库命令行示例

PostgreSQL 使用 SQL Shell(命令行)删除数据库

以下是在 Postgres 命令行中删除数据库的逐步过程:

步骤1) 使用命令 \l 来确定当前可用的数据库。

PostgreSQL 使用 SQL Shell 删除数据库

步骤2) 要在 Postgres 中删除数据库,请输入命令

drop database guru99

使用命令 \l 查看DB是否被删除

PostgreSQL 使用 SQL Shell 删除数据库

步骤3) 尝试再次删除同一个数据库,您将收到错误。

PostgreSQL 使用 SQL Shell 删除数据库

步骤4) 删除带有 IF 存在子句的数据库,您会收到警告

drop database IF EXISTS guru99

PostgreSQL 使用 SQL Shell 删除数据库

PostgreSQL 删除数据库 PgAdmin(GUI)

步骤1) 右键单击数据库“guru99”,然后单击“删除/放下”。

PostgreSQL 删除数据库 PgAdmin

步骤2) 在弹出的确认窗口中单击“确定”

PostgreSQL 删除数据库 PgAdmin

数据库已被删除。

dropdb 命令

dropdb 命令允许您删除数据库 PostgreSQL 远程。但是,用户必须是数据库的所有者才能使用 PostgreSQL 删除数据库命令来删除该数据库。

语法:

dropdb [option...] dbname
附加选项 描述
-e 回显 dropdb 创建并发送到服务器的命令。
-i 在执行任何破坏性作业之前显示验证提示
-V 使用此选项可以打印 dropdb 版本。
-帮帮我 提供 dropdb 命令行参数的帮助。
-h 主机 帮助您指定服务器当前运行的系统主机的名称。
-p 端口 此选项允许您指定服务器建立连接的 TCP 端口或本地 Unix 域套接字文件扩展名。
–如果存在 如果数据库不存在,则发出通知而不是错误信息。
-U 用户名 要连接的用户名。
-w 如果您不想输入密码,请使用此选项
-W 使用此参数可在拖放前提示输入密码。ping 数据库。
–maintenance-db=数据库名称 指定要连接到的数据库的名称以删除目标数据库。

PostgreSQL DROP DATABASE 示例

我们想要借助主机 rome 上的服务器(端口 99)销毁数据库 guru4565,并进行验证,您需要使用以下命令删除数据库 PostgreSQL 命令:

dropdb -p 4565 -h rome -i -e guru99

数据库“guru99”将被永久删除。

你确定吗?(y/n)如果你选择 y,那么你可以

删除数据库guru99;

常见问题

不。DROP DATABASE 命令会永久删除数据目录,因此没有撤销功能。只有在执行删除操作之前已进行备份、创建转储文件或配置了时间点恢复,才有可能进行恢复。

此错误表示当前存在活动会话。请断开这些会话的连接,或者从另一个数据库对这些会话的进程 ID 运行 `pg_terminate_backend()` 函数,然后重试 `DROP DATABASE` 操作。您无法删除当前已连接的数据库。

DROP DATABASE 是 psql 或 pgAdmin 中运行的 SQL 语句。dropdb 是一个命令行实用程序,它封装了该语句,允许您远程删除数据库,并可设置主机、端口和确认提示等选项。

AI 可以生成正确的 DROP DATABASE 或 dropdb 命令,提醒您先进行备份,并添加 IF EXISTS 子句。它还可以列出您必须在删除数据库之前关闭的活动连接。ping.

AI 无法恢复已删除的数据,但它可以指导您从备份或转储文件中恢复数据,并帮助制定时间点恢复计划,以防止将来意外丢失数据。

总结一下这篇文章: