2016-07-27 73 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 
相关问题