在 PostgreSQL 中通過 PSQL 刪除資料庫
有兩種方法可以訪問 PostgreSQL 物件和系統中的資料庫。一種是通過介面,例如 PGADMIN 之類的圖形介面,另一種是基本的命令列工具 psql。
今天,我們將研究發出 DROP DATABASE
命令的 Psql 版本以及它在 PGADMIN 中的工作方式。
使用 DROP
命令通過 PSQL 刪除資料庫
首先,從下面的檔案路徑中開啟 Psql。
C:/Program Files/PostgreSQL/14/bin (instead of 14, you might have a different version)
從搜尋欄中開啟 CMD,然後執行命令:
C:\Users\[Your User]>cd C:/Program Files/PostgreSQL/14/bin
現在,鍵入以下內容:
C:\Program Files\PostgreSQL\14\bin>psql -U postgres
如果你不明白髮生了什麼。我們建議你先閱讀 Psql 設定和命令。
你將被要求輸入 Postgres 的 PASSWORD
,完成後,按回車鍵。
你現在將在你的 PostgreSQL 伺服器中。要檢視所有資料庫,請寫出以下命令:
\l
此命令將列出你當前在伺服器上的所有資料庫。
作為旁註,請確保不要修改或刪除任何你不知道的資料庫,因為這可能有害並導致工作丟失。按照教程進行操作,不要冒險進入未知領域。
所以在本教程中,當前的資料庫是:
輸出:
假設我們想要 DROP
postgres
資料庫。我們可以實現這一點,如下所示。
DROP DATABASE postgres;
如果 user
不起作用,你可以發出的另一個命令是使用以下命令。
psql -U <user> -c "drop DATABASE [DATABASE NAME]"
確保在末尾包含一個分號。
該命令將 DROP
你的資料庫並有效地工作。但是,如果 DATABASE
當前已開啟或最後被多個使用者訪問,它將返回錯誤。
ERROR: cannot drop the currently open DATABASE
因此,請在刪除資料庫之前關閉你的資料庫並儲存你的工作。
使用 DROPDB
作為 PSQL 命令的 Shell 替代方案
許多使用者會從 Psql 發出 DROPDB
命令而不是 CMD(命令提示符),這是錯誤的。
你必須開啟 CMD 來執行這個命令來 DROP
資料庫。讓我們學習如何做到這一點。
在 Windows 中搜尋環境變數。在下面的框中,單擊環境變數
。
點選 NEW
新增新值的路徑。
在 VARIABLE PATH
中,輸入 BIN
的 PATH
和 LIB
資料夾,這將是:
C:\Program Files\PostgreSQL\14\bin
C:\Program Files\PostgreSQL\14\lib
按 Enter 並關閉。
在 CMD 中,使用以下命令輸入 BIN
資料夾。
cd C:\Program Files\PostgreSQL\14\bin
發出以下命令。
DROPBD [DATABASE NAME]
此命令將根據需要刪除資料庫。以上所有內容都是為了確保你的系統在發出 DROPDB
命令時不會出現錯誤。
強制斷開連線並使用 DROPDB
作為 PSQL 命令的 Shell 替代方案
我們假設你的系統尚未設定環境變數。如果這樣做,請保持原樣或將它們編輯為以下配置。
如果你想在發出 DROP
命令時使用強制斷開資料庫,你可以在 shell CMD 中使用 -f
關鍵字,在資料庫中使用 FORCE
。
對於 CMD 中的 DROP
命令:
DROPBD -f [DATABASE NAME]
對於資料庫介面或 PGADMIN 中的 DROP
命令,請使用以下命令:
drop database postgres with (FORCE)
FORCE
終止與資料庫的所有現有連線,在呼叫 DROP
命令之前是必不可少的。 -f
也是如此。
或者,要切斷所有現有連線,你可以繼續使用以下命令發出 PROCESS TERMINATION
命令:
select pg_terminate_backend([process id]) from pg_stat_activity where datname='database name';
使用它會終止在後臺執行的 Postgres 伺服器的當前會話。在此之後,你可以發出 DROP
命令來刪除資料庫。
發出 DROP
命令的另一種方法是通過配置 pg_hba.conf
檔案來限制對資料庫的訪問。但是,這是最不推薦的。
最好通過重新啟動伺服器並呼叫 DROP
命令來切斷連線。此外,請確保沒有其他使用者在資料庫上進行操作,一旦刪除資料庫就會丟失。
使用 DROPDB
作為 Ubuntu 使用者的 PSQL 命令的 Shell 替代方案
對於 Ubuntu 中的使用者,你可以發出以下命令。
連線請求:
sudo -i -u postgres psql
使用 \l
檢視可用的資料庫,
postgres=# \l
並且使用 DROP DATABASE [database_name]
命令,你可以刪除資料庫。
你可以在刪除資料庫之前使用 IF EXISTS
命令檢查資料庫是否已經存在,因為如果不存在,DATABASE DROP
命令將返回錯誤。
以下是使用 Postgres 命令的不同方式:
例如,-i
命令會在刪除前要求確認。因此,你可以根據需要使用不同的語法。
另外,請記住,一旦資料庫被刪除,我們就無法恢復它。這就是為什麼我們必須在發出命令之前使用確認標誌。
まとめ
我們希望你今天瞭解了為 PostgreSQL 資料庫中存在的資料庫發出 DROP
命令的不同方法。這些可以以任何需要的方式使用。
但是,在某些情況下,最好檢查是否存在所有先決條件,例如在 CMD shell 的情況下,環境變數必須事先存在。
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub