加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何删除匹配模式的postgresql数据库?

发布时间:2020-12-13 16:02:43 所属栏目:百科 来源:网络整理
导读:使用pgAdmin III,我可以在 postgresql服务器上列出所有数据库. 但是使用pgAdmin,我当时只能删除1个数据库.需要花费大量时间来删除,例如,30个数据库,一个接一个…… 那么,您的删除方法是什么,所有名称中包含“june”一词的数据库? 可能我将不得不构建一个Bas
使用pgAdmin III,我可以在 postgresql服务器上列出所有数据库.

但是使用pgAdmin,我当时只能删除1个数据库.需要花费大量时间来删除,例如,30个数据库,一个接一个……

那么,您的删除方法是什么,所有名称中包含“june”一词的数据库?

可能我将不得不构建一个Bash脚本.没问题.但是你会在这个脚本中使用哪个命令?

我已经在网上搜索了好几个小时而没有成功解决这个问题……

感谢帮助.

解决方法

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

或者使用更可靠的for循环(在父上下文中执行的块,因此有必要为其主体执行一些额外的移动):

for dbname in $(psql -c "copy (select datname from pg_database where datname like '%june%') to stdout") ; do
    echo "$dbname"
    #dropdb -i "$dbname"
done

另外选项-X for psql(不要使用?/ .psqlrc文件)可以很好地避免不必要的输出.

对于psql和dropdb实用程序,您可能需要提供连接选项(see documentation)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读