postgresql 使用Postgres检索Apache-age图中标签关系的OID值

uqxowvwt  于 2023-05-17  发布在  PostgreSQL
关注(0)|答案(3)|浏览(125)

我目前正在处理Apache-age图,需要检索图中标签关系的OID值。我使用Postgres来管理我的数据库,并尝试查询ag_labels模式,但它似乎不包含标签关系的OID值。
以下是我目前为止尝试过的代码:

SELECT oid, relname FROM pg_class WHERE relkind = 'r' AND relname LIKE 'ag_labels_%';

此查询返回我的图中所有标签关系的relname值,但不返回OID值。
我还尝试直接查询pg_catalog.pg_class表,但似乎也没有返回标签关系的OID值。
我想知道是否应该查看另一个表或模式来检索Apache-age中标签关系的OID值。任何建议或见解将不胜感激。
先谢谢你了!

n8ghc7c1

n8ghc7c11#

我不认为有一个单一的查询,您可以运行,以查看所有的oid的现有标签。标签存储在ag.label表中,但该表不包含有关OID的信息。您可以尝试首先使用
SELECT * FROM ag_label;
然后逃跑
SELECT oid, relname FROM pg_class WHERE relkind = 'r';
并在返回的行中找到您要查找的标签的名称和oid。

toiithl6

toiithl62#

如果运行查询:

SELECT oid, relname FROM pg_class WHERE relkind = 'r';

它也会像这样返回oid:

postgres=# SELECT oid, relname FROM pg_class WHERE relkind = 'r';
  oid  |         relname         
-------+-------------------------
  2619 | pg_statistic
  1247 | pg_type
 27575 | _ag_label_vertex
 27585 | _ag_label_edge
 35178 | ag_graph
 35190 | ag_label
  3118 | pg_foreign_table
 35771 | _ag_label_vertex
  1260 | pg_authid
 35791 | Person
 35781 | _ag_label_edge
 35800 | RELTYPE
  3429 | pg_statistic_ext_data
  1418 | pg_user_mapping
  6100 | pg_subscription

另一个条件“relname LIKE 'ag_labels_%'"可能是您无法获得所需结果的原因。

uajslkp6

uajslkp63#

也许你在找

SELECT oid, relation FROM ag_label;

它返回数据库中所有标签的OID,类似于以下内容:

oid   |           relation
--------+------------------------------
 803774 | test_graph._ag_label_vertex
 803787 | test_graph._ag_label_edge
 803799 | test_graph."Person"
 803811 | test_graph."MARRIED_TO"
 803823 | test_graph."PARENT_OF"
 803835 | test_graph."BROTHER_OF"
(6 rows)

相关问题