PostgreSQL 16.1在CMD执行\du/\dg命令不显示‘Member of’列如何解决?
解决PostgreSQL 16.1中\du/\dg不显示Member of列的问题
- 调整终端窗口宽度:psql会根据CMD窗口宽度自动适配输出列,当窗口宽度不足时,会自动隐藏
Member of这类非核心列。拉宽CMD窗口后重新执行\du或\dg命令即可显示完整列。 - 切换扩展显示模式:执行
\x命令开启垂直显示模式,再执行\du,所有角色属性(包括成员关系)会逐行展开展示,不受窗口宽度限制。 - 使用扩展命令:直接运行
\du+,该命令会强制展示所有可用列,即使终端窗口较窄,也会通过换行来显示完整的Member of信息。 - 手动查询系统表:如果上述方法均不生效,可直接查询PostgreSQL系统目录表获取角色成员关系:
SELECT r.rolname AS "Role name", array_agg(m.rolname) AS "Member of" FROM pg_roles r LEFT JOIN pg_auth_members am ON am.member = r.oid LEFT JOIN pg_roles m ON am.roleid = m.oid GROUP BY r.rolname ORDER BY r.rolname;
内容的提问来源于stack exchange,提问作者Maryam Mirfazaelian
相关产品推荐
相关产品推荐

