首頁 >後端開發 >Golang >如何刪除目前連接的 Postgres 資料庫?

如何刪除目前連接的 Postgres 資料庫?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-19 20:18:03335瀏覽

How to Drop a Postgres Database You're Currently Connected To?

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn