在 postgresql 中通过 psql 删除数据库
有两种方法可以访问 postgresql 对象和系统中的数据库。一种是通过界面,例如 pgadmin 之类的图形界面,另一种是基本的命令行工具 psql。
今天,我们将研究发出 drop database
命令的 psql 版本以及它在 pgadmin 中的工作方式。
使用 drop
命令通过 psql 删除数据库
首先,从下面的文件路径中打开 psql。
c:/program files/postgresql/14/bin (instead of 14, you might have a different version)
从搜索栏中打开 cmd,然后运行命令:
c:\users\[your user]>cd c:/program files/postgresql/14/bin
现在,键入以下内容:
c:\program files\postgresql\14\bin>psql -u postgres
如果你不明白发生了什么。我们建议你先阅读 psql 设置和命令。
你将被要求输入 postgres 的 password
,完成后,按回车键。
你现在将在你的 postgresql 服务器中。要查看所有数据库,请写出以下命令:
\l
此命令将列出你当前在服务器上的所有数据库。
作为旁注,请确保不要修改或删除任何你不知道的数据库,因为这可能有害并导致工作丢失。按照教程进行操作,不要冒险进入未知领域。
所以在本教程中,当前的数据库是:
输出:
假设我们想要 drop
postgres
数据库。我们可以实现这一点,如下所示。
drop database postgres;
如果 user
不起作用,你可以发出的另一个命令是使用以下命令。
psql -u -c "drop database [database name]"
确保在末尾包含一个分号。
该命令将 drop
你的数据库并有效地工作。但是,如果 database
当前已打开或最后被多个用户访问,它将返回错误。
error: cannot drop the currently open database
因此,请在删除数据库之前关闭你的数据库并保存你的工作。
使用 dropdb
作为 psql 命令的 shell 替代方案
许多用户会从 psql 发出 dropdb
命令而不是 cmd(命令提示符),这是错误的。
你必须打开 cmd 来运行这个命令来 drop
数据库。让我们学习如何做到这一点。
在 windows 中搜索环境变量。在下面的框中,单击环境变量
。
点击 new
添加新值的路径。
在 variable path
中,输入 bin
的 path
和 lib
文件夹,这将是:
c:\program files\postgresql\14\bin
c:\program files\postgresql\14\lib
按 enter 并关闭。
在 cmd 中,使用以下命令输入 bin
文件夹。
cd c:\program files\postgresql\14\bin
发出以下命令。
dropbd [database name]
此命令将根据需要删除数据库。以上所有内容都是为了确保你的系统在发出 dropdb
命令时不会出现错误。
强制断开连接并使用 dropdb
作为 psql 命令的 shell 替代方案
我们假设你的系统尚未设置环境变量。如果这样做,请保持原样或将它们编辑为以下配置。
如果你想在发出 drop
命令时使用强制断开数据库,你可以在 shell cmd 中使用 -f
关键字,在数据库中使用 force
。
对于 cmd 中的 drop
命令:
dropbd -f [database name]
对于数据库界面或 pgadmin 中的 drop
命令,请使用以下命令:
drop database postgres with (force)
force
终止与数据库的所有现有连接,在调用 drop
命令之前是必不可少的。 -f
也是如此。
或者,要切断所有现有连接,你可以继续使用以下命令发出 process termination
命令:
select pg_terminate_backend([process id]) from pg_stat_activity where datname='database name';
使用它会终止在后台运行的 postgres 服务器的当前会话。在此之后,你可以发出 drop
命令来删除数据库。
发出 drop
命令的另一种方法是通过配置 pg_hba.conf
文件来限制对数据库的访问。但是,这是最不推荐的。
最好通过重新启动服务器并调用 drop
命令来切断连接。此外,请确保没有其他用户在数据库上进行操作,一旦删除数据库就会丢失。
使用 dropdb
作为 ubuntu 用户的 psql 命令的 shell 替代方案
对于 ubuntu 中的用户,你可以发出以下命令。
连接请求:
sudo -i -u postgres psql
使用 \l
查看可用的数据库,
postgres=# \l
并且使用 drop database [database_name]
命令,你可以删除数据库。
你可以在删除数据库之前使用 if exists
命令检查数据库是否已经存在,因为如果不存在,database drop
命令将返回错误。
以下是使用 postgres 命令的不同方式:
例如,-i
命令会在删除前要求确认。因此,你可以根据需要使用不同的语法。
另外,请记住,一旦数据库被删除,我们就无法恢复它。这就是为什么我们必须在发出命令之前使用确认标志。
结论
我们希望你今天了解了为 postgresql 数据库中存在的数据库发出 drop
命令的不同方法。这些可以以任何需要的方式使用。
但是,在某些情况下,最好检查是否存在所有先决条件,例如在 cmd shell 的情况下,环境变量必须事先存在。
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
在一个 postgresql 查询中使用多个 with 语句
发布时间:2023/03/20 浏览次数:337 分类:postgresql
-
在本教程中,我们将学习如何使用多个 with 语句在 postgresql 中使用两个临时表执行查询。
发布时间:2023/03/20 浏览次数:185 分类:postgresql
-
本文介绍如何在 ubuntu 上找到 postgresql 数据库的配置文件。
发布时间:2023/03/20 浏览次数:409 分类:数据库
-
本文解释了如何直接从终端/命令行或 psql shell 运行 sql 文件。为此,你需要指定主机名、端口、用户名和数据库名称。
发布时间:2023/03/20 浏览次数:89 分类:postgresql
-
本文展示了如何列出 postgresql 上的活动连接。
在 postgresql 中使用循环
发布时间:2023/03/20 浏览次数:966 分类:postgresql
-
在 pl/sql 中,你可能需要在 postgres 中使用循环。我们可以使用 for 和 while 语句来创建循环。
发布时间:2023/03/20 浏览次数:141 分类:postgresql
-
本文介绍如何在 postgresql 中仅使用单个查询来重命名列以及更改其类型。
发布时间:2023/03/20 浏览次数:233 分类:postgresql
-
本文介绍如何在 postgresql 中使用 select 方法连接列。
发布时间:2023/03/20 浏览次数:281 分类:postgresql
-
本文展示了如何使用 case 语句并给出了 postgresql 中的示例。