问题描述
我正在尝试这个声明。
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;
如果我将最后一个 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;