如果数据库尚有活动连接,则drop数据库时会失败并有错误提示。
1
2
3
4
|
postgres=#
DROP
DATABASE
testdb;
ERROR:
database
"testdb"
is
being accessed
by
other users
DETAIL: There are 3 other sessions using the
database
.
|
可以先用下面的语句把testdb的活动连接中止,然后再DROP数据库就可以了。
1
2
3
4
5
6
7
8
9
10
|
postgres=#
SELECT
pg_terminate_backend(pid)
postgres-#
FROM
pg_stat_activity
postgres-#
WHERE
datname=
'testdb'
AND
pid<>pg_backend_pid();
pg_terminate_backend
----------------------
t
t
t
(3
rows
)
|
pg_stat_activity是一个系统视图,表中的每一行代表一个服务进程的属性和状态。
boolean pg_terminate_backend(pid int)是一个系统函数,用于终止一个后端服务进程。
原文链接:https://www.f2er.com/postgresql/195333.html