• 删除 PostgresSql 数据库 报错:有 N 个其它会话正在使用数据库 的解决方案


    说明此时有两个客户端在连接此数据库,此时不能删除数据库。

    如果确定要强制删除此数据库,那么执行如下命令:

    SELECT pg_terminate_backend(pg_stat_activity.pid)
    FROM pg_stat_activity
    WHERE datname=‘VolteAna3G’ AND pid<>pg_backend_pid();

    postgres=# SELECT pg_terminate_backend(pg_stat_activity.pid)
    postgres-# FROM pg_stat_activity
    postgres-# WHERE datname=‘dbtest’ AND pid<>pg_backend_pid();
    pg_terminate_backend

    t
    t
    t
    (3 rows)
    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.
    9.
    执行上面的语句之后,在执行DROP操作,就可以删除数据库了。
    上面语句说明:

    pg_terminate_backend:用来终止与数据库的连接的进程id的函数。

    pg_stat_activity:是一个系统表,用于存储服务进程的属性和状态。

    pg_backend_pid():是一个系统函数,获取附加到当前会话的服务器进程的ID。

    此时再执行删除数据库的操作:

    postgres=# drop database dbtest;
    DROP DATABASE
    1.
    2.
    强制删除数据库成功

  • 相关阅读:
    lt基站学习总结
    GB28181-流传输方式
    Linux 虚拟化
    csv/json/list/datatable导出为excel的通用模块设计
    6.4-为何要深度学习
    jvm02
    点三流水灯
    服务器硬件基础知识
    下载安装jdk和eclipse详细步骤带图
    EN 14080木结构胶合层压木材和胶合实木产品—CE认证
  • 原文地址:https://blog.csdn.net/cuisidong1997/article/details/136608311