如何获取用户拥有的数据库列表?

时间:2010-05-13 02:41:07

标签: postgresql

我想找出(并删除)postgres 8.4.3中所有者拥有的所有数据库我也是postgres的新手,虽然我今天可以阅读整本手册但我会被迫使用

    for i in  $(psql -l |grep novicedba | awk '{print $1}')

psql -d postgres -c " drop database \"$i\""
出于绝望。 postgresql的方法是什么?

1 个答案:

答案 0 :(得分:5)

您可以在pg_database表上运行SQL查询,而不是grepping novicedba:

SELECT datname
FROM pg_database JOIN pg_authid ON pg_database.datdba = pg_authid.oid
WHERE rolname = 'novicedba'

完成后,您可以遍历行并删除每行。这比第一种方法更安全,因为它检查确切的所有者字段,而不是子字符串的整行输出。