postgreSQL dropdb 時 還有會話沒有關閉
阿新 • • 發佈:2019-01-24
如果資料庫尚有活動連線,則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)是一個系統函式,用於終止一個後端服務程序。
int pg_backend_pid()系統函式用於獲取附加到當前會話的伺服器程序的ID