由于现今大部分的应用是使用了数据库连接池的,所以当页面或接口访问完后,数据库的连接并不会马上断开,这导致有时候想用navicat删除某些因测试目的建立的数据库时,会导致删除失败,提示
“Error: database "*" is being accessed by other users Detail: There are * other sessions using the database.
”,
遇到这种情况怎么办呢?可以用一条语句把连接主动结束掉,在navicat的查询窗口执行以下sql语句即可
SELECT CAST(pg_terminate_backend(pid) AS VARCHAR(10)) FROM pg_stat_activity WHERE datname='test-db';
注意,上述语句里的test-db要替换成您将要删除的数据库名即可;