neo4j约束可帮助用户避免输入错误类型的数据。当应用约束并且用户错误地输入了错误类型的数据时,它将显示错误消息。在neo4j中有两种约束,一种是唯一性约束,另一种是属性存在性约束。
下面是两个约束与示例的示例:
假设已经存在下面的数据库。
CREATE(CPP:Language{id:001, Designer: "Bjarne Stroustrup", YOE: 1985})
CREATE(C:Language {id:002, Designer: "Dennis Ritchie", YOE: 1972})
CREATE(Python:Language {id:003, Designer: "Guido van Rossum ", YOE: 1990})
CREATE(Java:Language {id:004, Designer: "James Gosling", YOE: 1995})
CREATE(CSharp:Language {id:005, Designer: "Microsoft", YOE: 2000})
RETURN CPP, C, Python, Java, CSharp
输出:
- 唯一性约束:
- 询问:
CREATE CONSTRAINT ON(l:Language) ASSERT l.id IS UNIQUE
输出:
- 查看约束:
:schema
输出:
- 测试约束:
在这里,我们将尝试将另一个具有冗余 id 值 (004) 的节点添加到该数据库中。
询问:CREATE(Neo4j:Language {id:004, Designer: "Neo4j", YOE: 2012})
输出:
这个约束包含一个唯一的值,在他的约束中两个相同的lebel不能共享相同的id。
- 属性存在约束:
- 询问:
CREATE CONSTRAINT ON (label) ASSERT exists(node)
笔记:
属性存在约束仅在 Neo4j 企业版中可用。
属性存在约束用于确保所有具有某个标签的节点都具有某个属性。例如,您可以指定所有标有 Language 的节点都必须包含一个 id 属性。