【问题标题】:PostgreSQL: Cannot drop database X because it is currently in use [duplicate]PostgreSQL:无法删除数据库 X,因为它当前正在使用 [重复]
【发布时间】:2021-07-01 12:37:33
【问题描述】:

即使我的数据库没有被任何人使用,我也遇到过这个错误,我花了一些时间试图找出正确删除任何数据库的方法。

【问题讨论】:

  • DROP DATABASE WITH (FORCE) 可用于 v13 及以上版本
  • 另一个技巧:首先重命名数据库,以禁止新会话进入。然后删除重命名的数据库直到成功(在所有会话都退出之后)
  • 您当前是否在您尝试删除的数据库中?如果您使用 psql,请运行 \c 进行更改。如果您使用 ppgadmin(或其他 gui)断开数据库。
  • 我实际上使用的是 Azure Data Studio。我尝试重新启动服务,然后立即连接到服务器,然后删除数据库。我认为,错误的发生是因为 PG 的连接方法不同。据我了解,您无法连接到服务器和使用 PG 并始终连接到某个数据库。

标签: sql postgresql


【解决方案1】:

这里有一个简单的解决方案:

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

drop database DatabaseName;

【讨论】:

  • 如果您在数据库中,可能会终止您自己的连接。
猜你喜欢
  • 2011-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多