zoukankan      html  css  js  c++  java
  • pgsql有用户正在连接,无法删除用的的情况

    今天要删除一个数据库时,不管是直接在图形化界面上删除还是命令行

    DROP DATABASE test;

    删除,都会报错提示

    ERROR:  database "mydb" is being accessed by other users
    DETAIL:  There are 3 other sessions using the database.

    这是因为当前数据库也在被别的用户使用,这里要删除也要慎重,确保数据库是可以被删除的再继续操作。
    解决方式:
    断开连接到这个数据库上的所有链接,再删除数据库。怎么断开呢?在PostgreSQL 9.2 及以上版本,执行下面的语句:

    SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname='test' AND pid<>pg_backend_pid();

    再执行

    DROP DATABASE test;

    删除成功

    语句说明:

    • pg_terminate_backend:用来终止与数据库的连接的进程id的函数。
    • pg_stat_activity:是一个系统表,用于存储服务进程的属性和状态。
    • pg_backend_pid():是一个系统函数,获取附加到当前会话的服务器进程的ID。
  • 相关阅读:
    CenterNet-TensorRT错误记录
    NAS研究要点分析
    conda如何安装从源下载的离线安装包
    Xavier上pytorch半精度inference问题
    Xavier 使用便携程序
    Xavier疑问
    Python输入(Leetcode
    兴趣爱好
    生活目标
    TX2装机教程
  • 原文地址:https://www.cnblogs.com/liviniu/p/15594379.html
Copyright © 2011-2022 走看看