如何删除除postgres中的少数数据库之外的所有数据库

时间:2014-07-03 08:08:20

标签: database postgresql

我想删除除少数数据库之外的所有数据库。 假设有20个数据库,我想删除其中的18个,但保留2个,因为它是最新的并且正在使用中。

请建议。

3 个答案:

答案 0 :(得分:36)

首先,在psql终端中执行以下查询。

select 'drop database "'||datname||'";'
from pg_database
where datistemplate=false;

这将为所有数据库生成drop database命令。将结果复制到文本编辑器中,排除(删除)要保留的内容并将其另存为dd.sql文件。并执行它:

psql -d postgres -f dd.sql

答案 1 :(得分:4)

正如接受的答案有点证明,删除多个数据库对我来说特别乏味,所以我写了一个帮助脚本来缓解这个操作:https://github.com/Kraymer/ezdropdb

简而言之,您输入一个模式,您要抑制的数据库必须匹配,然后列出所有数据库名称结果,并有一个最终提示,您可以在其中输入要删除的数据库(参见项目页面上的屏幕截图)。

答案 2 :(得分:2)

您现在可以从 pgAdmin 中选择数据库的属性,选择要删除的 DB,然后单击删除/删除。快捷方便!删除选定的数据库: Drop selected databases