如何查看PostgreSQL中AGE创建的所有表及其列信息?
查看AGE的标签表、顶点表、边表及列信息
一、查看AGE专属的标签、顶点和边表
AGE的图对象(标签、顶点、边)相关元数据与数据均存储在ag_catalog模式下,可通过以下方式查看:
1. 使用psql命令快速列表
在psql终端执行命令,列出ag_catalog下所有包含顶点表、边表及标签元数据表的表:
\dt ag_catalog.*
2. 通过SQL查询标签元数据
查询ag_catalog.ag_label表可获取所有标签的详细信息,包括标签名、对应表名、类型(顶点/边):
SELECT labelname AS 标签名, relname AS 对应表名, kind AS 类型(v=顶点,e=边) FROM ag_catalog.ag_label;
3. 查询具体顶点/边表的数据
根据上述查询得到的relname(对应表名),直接查询对应表即可获取顶点或边的数据:
-- 示例:查询名为person的顶点表数据 SELECT * FROM ag_catalog.person; -- 示例:查询名为friend的边表数据 SELECT * FROM ag_catalog.friend;
二、查询这些表的所有列信息
1. 使用psql命令查看表结构
在psql终端执行\d命令并指定ag_catalog下的表名,可快速查看表的列、类型、约束等信息:
-- 示例:查看person顶点表的列信息 \d ag_catalog.person
2. 通过information_schema查询列信息
使用标准information_schema.columns视图,可结构化查询指定表的列详情:
SELECT column_name AS 列名, data_type AS 数据类型, is_nullable AS 是否允许为空 FROM information_schema.columns WHERE table_schema = 'ag_catalog' AND table_name = 'person'; -- 替换为目标表名
3. 批量查询所有AGE标签表的列信息
结合ag_label和information_schema.columns,可一次性获取所有顶点/边表的列信息:
SELECT al.labelname AS 标签名, al.kind AS 标签类型, ic.column_name AS 列名, ic.data_type AS 数据类型, ic.is_nullable AS 是否允许为空 FROM ag_catalog.ag_label al JOIN information_schema.columns ic ON al.relname = ic.table_name AND ic.table_schema = 'ag_catalog';
4. 使用pg_catalog底层表查询
通过PostgreSQL底层系统表pg_attribute,可获取更详细的列属性:
SELECT attname AS 列名, format_type(atttypid, atttypmod) AS 数据类型, attnotnull AS 是否非空 FROM pg_catalog.pg_attribute WHERE attrelid = 'ag_catalog.person'::regclass -- 替换为目标表名 AND attnum > 0 -- 排除系统隐藏列 AND NOT attisdropped; -- 排除已删除的列
内容的提问来源于stack exchange,提问作者Bhaskar Sharma
相关产品推荐
相关产品推荐

