Neo4j使用关键字作为标签/节点/关系名称
所以我最近一直在玩Neo4j,令我惊讶的是,我发现可以将标签、节点或关系名称设置为关键字(匹配、创建、顺序…)。我知道这是非常糟糕的做法Neo4j使用关键字作为标签/节点/关系名称,neo4j,cypher,Neo4j,Cypher,所以我最近一直在玩Neo4j,令我惊讶的是,我发现可以将标签、节点或关系名称设置为关键字(匹配、创建、顺序…)。我知道这是非常糟糕的做法 CREATE (s:CREATE{CREATE: "something"}) RETURN s 但我的问题是:“这只会导致更少的transparet查询,还是会导致任何可能的错误?如果可能发生错误,为什么会允许这样做?” 我知道这是一个愚蠢的问题,但在neo4j文档中我没有找到答案 我相信语法树是这样的,解析器永远不会因为它是在计算关键字、标签、属性还是其他
CREATE (s:CREATE{CREATE: "something"}) RETURN s
但我的问题是:“这只会导致更少的transparet查询,还是会导致任何可能的错误?如果可能发生错误,为什么会允许这样做?”
我知道这是一个愚蠢的问题,但在neo4j文档中我没有找到答案 我相信语法树是这样的,解析器永远不会因为它是在计算关键字、标签、属性还是其他部分而感到困惑
我不认为我们看到过任何与此相关的问题,至少在3.0及以上版本中(我在3.0之前的日子里不在身边)。不太透明的查询,您可以反勾它们,以明确它们不是读者的关键字。是的,避免在实体名称中使用保留字。Neo4j并没有限制它们的使用,但它会导致混乱。(作为反例,VAX-COBOL有500多个保留字。)