【发布时间】:2013-06-14 13:39:31
【问题描述】:
是否有 Neo4j Cypher 的保留字列表?我想避免其他人发现的任何陷阱,保留字过去曾在其他项目中咬过我。
【问题讨论】:
是否有 Neo4j Cypher 的保留字列表?我想避免其他人发现的任何陷阱,保留字过去曾在其他项目中咬过我。
【问题讨论】:
文档中没有保留字的完整列表。对于即将发布的 2.0 版本,关键字在单个文件中定义,可能有缩写(如 asc/desc):
1.9 版的组织稍差,大部分在https://github.com/neo4j/neo4j/blob/2.0/community/cypher/src/main/scala/org/neo4j/cypher/internal/parser/v1_9/Base.scala,“创建唯一”在https://github.com/neo4j/neo4j/blob/2.0/community/cypher/src/main/scala/org/neo4j/cypher/internal/parser/v1_9/CreateUnique.scala
【讨论】:
对于 Neo4j,有一张我喜欢使用的参考卡:https://neo4j.com/docs/cypher-refcard/current/
【讨论】:
唯一真正的保留字(从 2.0 M03 开始)是(并且,很抱歉,如果这不完整,这是我的想法):
START
MATCH
WHERE
WITH
RETURN
FOREACH
CREATE
SET
UNION
DELETE
REMOVE
CASE
WHEN
THEN
ASC
DESC
也有函数/聚合函数,但解析器足够聪明,能够允许以下操作:
RETURN count(*) as count
我不会担心 - 如果您遇到其中一种情况,它会给您一个合理的错误。像这样:
Query:
START match=node(*)
RETURN match
Error: reserved keyword
"START match=node(*) "
【讨论】:
LIMIT 呢?
match (match) return match as return limit 1