如何查看Apache AGE中图内及全局的标签关系OID?
查看Apache AGE标签的OID
全局范围内查看所有标签的OID
Apache AGE的标签(顶点/边对应的表)都存储在ag_labels模式下,系统表ag_label直接记录了每个标签对应的表OID(字段relid)。你可以直接查询ag_label获取全局所有标签的OID:
SELECT label_name, relid AS label_table_oid FROM ag_label;
也可以通过PostgreSQL的系统表pg_class过滤ag_labels模式下的表来获取:
SELECT relname AS label_name, oid AS label_table_oid FROM pg_class WHERE relnamespace = 'ag_labels'::regnamespace AND relkind = 'r'; -- 仅筛选普通表(AGE标签都是普通表)
查看指定图中的标签OID
如果你只需要某一个图下的标签OID,可以通过关联ag_graph和ag_label表精准查询:
- 先获取目标图的
graph_id(可选,也可直接用图名):
SELECT graphname, graph_id FROM ag_graph;
- 根据图ID查询对应标签的OID:
SELECT l.label_name, l.relid AS label_table_oid FROM ag_label l WHERE l.graph_id = <你的图ID>;
或者直接通过图名关联查询,更直观:
SELECT l.label_name, l.relid AS label_table_oid FROM ag_label l JOIN ag_graph g ON l.graph_id = g.graph_id WHERE g.graphname = '你的图名称';
补充说明
ag_label表中的relid字段就是对应标签表的OID,和pg_class.oid是同一个值。pg_class是PostgreSQL记录所有数据库对象(表、索引等)的系统表,relkind = 'r'用于排除索引、视图等非普通表对象。
内容的提问来源于stack exchange,提问作者Panagiotis Foliadis
相关产品推荐
相关产品推荐

