CREATE 在这个语句中起作用,但 MERGE 不起作用这里发生了什么?

问题描述

我正在尝试这个声明。

CREATE (n:TestEntity),(m1:RelatedEntity)
WITH n,m1
MERGE (m2:RelatedEntity {b:"c"})
WITH n,m1,m2
MERGE (n)-[:REL]->(m1),(n)-[:REL]->(m2)
SET n+={a:1},m1+={b:"d"},m2+={d:2}
return n,m2;

这给出了一个错误

enter image description here

如果我将最后一个 MERGE 更改为 CREATE,则该语句有效。

如果我删除第二个关系并且只删除 MERGE一个关系,它会起作用。这是怎么回事?这是一个错误吗?

解决方法

此时在 Neo4j 4.2.x 中,MERGE 不支持逗号分隔模式,尽管 backlog 中有一个功能请求要添加该功能。

,

MERGE 不支持逗号分隔。一种解决方法是在每个节点/关系等前面添加 MERGE 关键字。

以下查询有效:

CREATE (n:TestEntity),(m1:RelatedEntity)
WITH n,m1
MERGE (m2:RelatedEntity {b:"c"})
WITH n,m1,m2
MERGE (n)-[:REL]->(m1) MERGE (n)-[:REL]->(m2)
SET n+={a:1},m1+={b:"d"},m2+={d:2}
return n,m2;