我目前正在实施一个图形数据库,其中使用分配节点将人员分配给(客户的)项目。客户或项目可能已经存在,也可能不存在,分配节点应该是唯一的(每个分配节点只能有一个传入和一个传出关系)。下面的代码有效,但当数据库中已存在两者时,重复Project-> Customer关系。我该如何防止这种情况?
MATCH (p:Person {id:1})
MERGE (c:Customer {id:1})
MERGE (pr:Project {id:1})
CREATE (p)-[:HAS_ALLOCATION]->(a:Allocation)-[:ON_PROJECT]->(pr)-[:HAS_CUSTOMER]->(c)
RETURN a,p,pr,c;
答案 0 :(得分:0)
您应该尝试使用MERGE
和CREATE UNIQUE
代替CREATE
条款,看看是否能解决您的问题。