查询格式

Cypher 查询通过 ag_catalog 中名为 cypher 的函数构建,该函数返回 PostgreSQL 的 SETOF records

cypher()

cypher() 执行作为参数传入的 Cypher 查询。

语法:cypher(graph_name, query_string, parameters)

返回值:

A SETOF records

参数:

参数名称 描述
graph_name Cypher 查询的目标图。
query_string 要执行的 Cypher 查询。
parameters 用于预处理语句的可选参数映射。默认值为 NULL。

注意!

  • 如果 Cypher 查询不返回结果,仍然需要定义记录定义。
  • 参数映射只能与预处理语句一起使用,否则会抛出错误。

查询示例:

SELECT * FROM cypher('graph_name', $$ 
/* 此处为 Cypher 查询 */ 
$$) AS (result1 agtype, result2 agtype);

Cypher 在表达式中的使用

Cypher 不能作为表达式的一部分使用,请改用子查询。有关如何在表达式中使用 Cypher 查询的信息,请参阅[高级用法]()查询。

SELECT 子句

不允许在 SELECT 子句中将 Cypher 作为独立列调用。但是,当 Cypher 作为条件的一部分时可以使用。

不允许的用法:

SELECT 
    cypher('graph_name', $$
         MATCH (v:Person)
         RETURN v.name
     $$);
ERROR:  cypher(...) in expressions is not supported
LINE 3:         cypher('graph_name', $$
                ^
HINT:  Use subquery instead if possible.