在Postgres 中刪除已連接的資料庫
您在嘗試刪除目前連接的資料庫時遇到錯誤:「pq:無法刪除目前開啟的資料庫。
此行為是有道理的,因為刪除資料庫會使引用該資料庫的所有開啟連線失效。若要成功刪除資料庫,您必須確保不存在活動連線。
推薦方法
推薦方法是連接到不同的資料庫並執行 DROP DATABASE 命令從那個連接。這可確保您與要刪除的資料庫沒有任何開啟的連線。
強制斷開客戶端
在其他客戶端連接到資料庫的情況下你需要刪除,你可以強行斷開它們。請注意,這需要超級用戶權限。
對於9.2 之前的PostgreSQL 版本:
SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname = 'mydb';
對於PostgreSQL 9.2 及更高版本:
對於PostgreSQL 9.2 及更高版本:SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb';
>強制斷開所有客戶端後,您可以連接到不同的資料庫並再次執行DROP DATABASE 指令。 附加說明在您的特定程式碼範例中,您嘗試在執行 DROP DATABASE 後關閉連線命令。此步驟是不必要的,並且可能會導致意外行為。只需在執行 DROP DATABASE 命令之前連接到不同的資料庫,您將成功關閉與已刪除的資料庫的連線。
以上是如何刪除目前連接的 Postgres 資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!