Neo4j Cypher の予約語のリストはありますか? 他の人が発見した落とし穴を避けたいと思います。予約語は、過去に他のプロジェクトで私を噛みました。
3 に答える
ドキュメントには、予約語の包括的なリストはありません。今後のバージョン 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 にあります。スカラ
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(*) "