我在Postgres中有大约400个要修改的角色。我可以运行以下命令400次,但我想知道是否还有更好的方法。
ALTER ROLE foo CONNECTION LIMIT 4;
类似的东西
UPDATE roles SET connection_limit = 4 WHERE connection_limit = 2;
答案 0 :(得分:3)
您应该使用psql
及其鲜为人知的\gexec
功能:
SELECT format('ALTER ROLE %I CONNECTION LIMIT 4', rolname)
FROM pg_catalog.pg_roles
WHERE rolconnlimit = 2\gexec
这将运行查询并以SQL命令的形式执行每个结果字符串。