PostgreSQL:通过命令行删除PostgreSQL数据库 [已关闭]
PostgreSQL:通过命令行删除PostgreSQL数据库 [已关闭]
已关闭: 这个问题不符合主题,当前不能接受回答。
想要改进这个问题吗? 更新问题使其符合Stack Overflow主题。
改进这个问题
我正在尝试通过命令行删除我的数据库并创建一个新的。
我使用psql -U username
登录然后执行\\connect template1
,然后跟着DROP DATABASE databasename;
。
我得到了以下错误:
数据库databasename正在被其他用户访问
我关闭了Apache并再次尝试,但我仍然得到这个错误。我做错了什么吗?
admin 更改状态以发布 2023年5月23日
以下方法对我有效:
select pg_terminate_backend(pid) from pg_stat_activity where datname='YourDatabase';
对于 PostgreSQL 早于 9.2 版本,请将 pid
替换为 procpid
DROP DATABASE "YourDatabase";
你可以从命令行运行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