Postgres:是否有查询返回给定用户拥有的表?

时间:2011-04-15 13:47:45

标签: postgresql

我需要一个查询(不是像\ dn或\ dt这样的命令,或者因为我没有从命令行运行此命令),这将允许我指定用户名,并获取与该用户关联的所有表(和理想情况下它使用了多少磁盘空间和其他细节。

这样的命令是否存在?非常感谢你。

2 个答案:

答案 0 :(得分:2)

这将提供表名,及其所有者以及用户ID

SELECT pgc.relname, pgc.relowner, pgs.usename 
FROM pg_class pgc JOIN pg_shadow pgs 
ON pgc.relowner = pgs.usesysid;

答案 1 :(得分:1)

您可以在catalog中查找此类信息。目录是包含有关正在运行的Postgres实例的元数据的表的集合。因此,使用SQL查询很容易。要查找特定用户拥有的所有表,您可以查询pg_tables。对于尺码,您可能需要加入pg_class