【发布时间】:2016-07-29 17:33:51
【问题描述】:
由于只有neo4j的企业版支持存在约束,我自己无法测试。
例如,假设我对关系属性 :Likes(createDate) 有一个存在约束,通常用于一个 :Person 喜欢另一个人的地方。
显然,由于存在约束,这样的创建调用会失败:
MATCH (a:Person{id:1}), (b:Person{id:2})
CREATE (a)-[:Likes]->(b)
我必须创建与 createDate 属性的关系以遵守约束。
但是如果关系已经存在怎么办?我想做这样的事情:
MATCH (a:Person{id:1}), (b:Person{id:2})
MERGE (a)-[v:Likes]->(b)
ON CREATE SET v.createDate = timestamp()
我担心这不会被允许,但我不知道是在 MERGE 时还是在 ON CREATE 之后检查存在约束。看起来这将是一个相当标准的用例,我想知道企业版是否允许这样做没有问题。
【问题讨论】:
标签: neo4j constraints cypher