2016-07-27 66 views
2

使用pgAdmin III,我可以列出我的postgresql服務器上的所有數據庫。如何刪除匹配模式的postgresql數據庫?

但是用pgAdmin,我當時只能刪除1個數據庫。刪除數據庫需要很長時間,例如,一個接一個地刪除30個數據庫...

那麼,您將刪除的方法是什麼,例如,名稱中包含單詞「june」的所有數據庫, ?

也許我將不得不建立一個Bash腳本。這沒有問題。但是你會在這個腳本中使用哪個命令?

我搜索了很多小時在網上沒有成功這個問題...

感謝幫助。

回答

2
psql -c "copy (select datname from pg_database where datname like '%june%') to stdout" | while read line; do 
    echo "$line" 
    #dropdb -i "$line" 
done 

對於psqldropdb事業,你可能需要提供連接選項(see documentation

+0

看起來很有趣。我會盡快嘗試。感謝您的回答。 –

+0

1000謝謝你先生!大!大!大! –

1

非常感謝Abelisto。

真的很高興能有他的劇本!

這是我們最後的腳本,效果很好。絕對好!經過數月的搜索。

#!/bin/bash 
clear 
export PGPASSWORD="ssadas" 

PATTERN=$1 

echo "Le paramètre passé est : $PATTERN" 

/usr/bin/psql -U odoo -d postgres -c "copy (select datname from pg_database where datname like '%$PATTERN%') to stdout" | while read line; do 
    echo "$line" 
    dropdb -U odoo "$line" 
done 
echo 
echo "Les bases de données ayant $PATTERN dans leur nom on été effacées!" 
echo 
exit