我想找出(并删除)postgres 8.4.3中所有者拥有的所有数据库我也是postgres的新手,虽然我今天可以阅读整本手册但我会被迫使用
for i in $(psql -l |grep novicedba | awk '{print $1}')
psql -d postgres -c " drop database \"$i\""
出于绝望。 postgresql的方法是什么?
答案 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'
完成后,您可以遍历行并删除每行。这比第一种方法更安全,因为它检查确切的所有者字段,而不是子字符串的整行输出。