PostgreSQL:通过命令行删除PostgreSQL数据库 [已关闭]

9 浏览
0 Comments

PostgreSQL:通过命令行删除PostgreSQL数据库 [已关闭]

已关闭: 这个问题不符合主题,当前不能接受回答。


想要改进这个问题吗? 更新问题使其符合Stack Overflow主题

改进这个问题

我正在尝试通过命令行删除我的数据库并创建一个新的。

我使用psql -U username登录然后执行\\connect template1,然后跟着DROP DATABASE databasename;

我得到了以下错误:

数据库databasename正在被其他用户访问

我关闭了Apache并再次尝试,但我仍然得到这个错误。我做错了什么吗?

admin 更改状态以发布 2023年5月23日
0
0 Comments

以下方法对我有效:

select pg_terminate_backend(pid) from pg_stat_activity where datname='YourDatabase';

对于 PostgreSQL 早于 9.2 版本,请将 pid 替换为 procpid

DROP DATABASE "YourDatabase";

http://blog.gahooa.com/2010/11/03/how-to-force-drop-a-postgresql-database-by-killing-off-connection-processes/

0
0 Comments

你可以从命令行运行dropdb命令:

dropdb 'database name'

请注意,您必须是超级用户或数据库所有者才能删除它。

您还可以检查pg_stat_activity视图,以查看当前针对您的数据库正在进行的活动类型,包括所有空闲进程。

SELECT * FROM pg_stat_activity WHERE datname='database name';

请注意,从PostgreSQL v13开始,您可以使用

DROP DATABASE dbname WITH (FORCE);

dropdb -f dbname

0