sql - 为什么我不能删除 postgres 数据库

标签 sql postgresql drop-database

我正在尝试删除 postgres 数据库。但我总是得到一个

There is 1 other session using the database


错误。
我尝试使用此命令停止所有 session
select pg_terminate_backend(pid) from pg_stat_activity where datname='my_database';
这是结果
pg_terminate_backend
----------------------
(0 rows)
然后我使用了这个命令
DROP DATABASE my_database;
这是整个错误信息
ERROR:  database "my_database" is being accessed by other users
DETAIL:  There is 1 other session using the database.
我正在使用 postgres 12。

最佳答案

  • 确保没有用户可以连接到您的数据库( super 用户权限, super 用户仍然可以连接):
    ALTER DATABASE mydb CONNECTION LIMIT 0; 
    
  • 强制断开连接到此数据库的所有客户端(数据库所有者权限):
    SELECT pg_terminate_backend(pid)
    FROM pg_stat_activity
    WHERE datname = 'mydb';
    
  • 然后使用 drop 命令删除数据库(数据库所有者权限):
    DROP DATABASE mydb;
    
  • 关于sql - 为什么我不能删除 postgres 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64023839/

    相关文章:

    当辅助数据库关闭时,mongodb 无法删除数据库

    mysql - 如何删除名为 "/"的数据库

    mysql - 4张表的SQL查询: Very Complex?

    sql - 在此 SQL 查询中使用 'Not In' 有什么问题?

    sql - 是否有任何工具集/技术可以确定 SQL 查询在功能上是否相同?

    postgresql - 通过关系的深层属性查询

    sql - Oracle 合并列给出错误

    sql - 确定框之间的距离

    database - 转义用户名中的破折号

    mysql - 在 MySQL 中删除数据库返回 "Error dropping database errno: 66"