我们能在postgresql终端上得到一个图的graphID(Oid)吗

2mbi3lxu  于 2023-01-30  发布在  PostgreSQL
关注(0)|答案(1)|浏览(201)

我已经创建了一个名为“cyc_graph”的图形,现在我正在测试是否可以使用agtype_build_map函数在这个图形中插入一些顶点,但是这个函数需要graphID作为参数。那么我如何获得已经从PostgreSQL终端创建的图形的graphID?
我试过这样
SELECT 'cyc_graph.vtxs'::regclass::oid;
但是这给出了vtxs表的Oid.(vtxs是顶点的标签名).我知道cyc_graph是一个模式名.所以我不知道如何得到一个模式名的graphID/Oid.

jw5wzhpr

jw5wzhpr1#

    • 什么是图形ID?**

为简单实体分配唯一的图形ID。图形ID是实体标签ID和分配给每个标签的唯一序列的唯一组合。请注意,在比较来自不同图形的实体时,ID会重叠。
参考:https://age.apache.org/age-manual/master/intro/types.html

test=# LOAD 'age';
LOAD
test=# SET search_path = ag_catalog, "$user", public;
SET
test=# SELECT * FROM cypher('graph', $$
MATCH (v)
RETURN v
$$) as (v agtype);
                                                     v
------------------------------------------------------------------------------------------------------------
 {"id": 844424930131969, "label": "Person", "properties": {"name": "John"}}::vertex
 {"id": 844424930131970, "label": "Person", "properties": {"name": "Jeff"}}::vertex
 {"id": 844424930131971, "label": "Person", "properties": {"name": "Joan"}}::vertex
 {"id": 844424930131972, "label": "Person", "properties": {"name": "Bill"}}::vertex
 {"id": 844424930131973, "label": "Person", "properties": {"name": "Andres", "title": "Developer"}}::vertex
(5 rows)

这里的id实际上是GraphID。

相关问题