📜  Neo4j创建约束(1)

📅  最后修改于: 2023-12-03 15:03:09.454000             🧑  作者: Mango

Neo4j创建约束

在Neo4j中,约束可用于强制实现数据模型的规范性和完整性。在本文中,我们将介绍如何在Neo4j中创建不同类型的约束。

唯一约束

唯一约束可防止节点或关系上的重复数据。要创建唯一约束,请使用以下Cypher查询:

CREATE CONSTRAINT constraint_name ON (n:NodeLabel) ASSERT n.property_name IS UNIQUE

其中constraint_name可以是任何名称,NodeLabel是节点的标签,property_name是要唯一限制的节点属性的名称。

以下是一个示例,创建了一个唯一约束,以防止节点上的重复电子邮件地址:

CREATE CONSTRAINT unique_email ON (n:User) ASSERT n.email IS UNIQUE
必填约束

必填约束可确保节点或关系上的属性值不为空。要创建必填约束,请使用以下Cypher查询:

CREATE CONSTRAINT constraint_name ON (n:NodeLabel) ASSERT exists(n.property_name)

其中constraint_name可以是任何名称,NodeLabel是节点的标签,property_name是要确保非空的节点属性的名称。

以下是一个示例,创建了一个必填约束,要求节点上的电子邮件地址不为空:

CREATE CONSTRAINT required_email ON (n:User) ASSERT exists(n.email)
组合约束

组合约束可确保在给定多个属性时,节点或关系上的属性值不会重复。要创建组合约束,请使用以下Cypher查询:

CREATE CONSTRAINT constraint_name ON (n:NodeLabel) ASSERT (n.property_name_1, n.property_name_2) IS NODE KEY

其中constraint_name可以是任何名称,NodeLabel是节点的标签,property_name_1property_name_2是要唯一限制的节点属性的名称。

以下是一个示例,创建了一个组合约束,以防止节点上的重复用户名和电子邮件地址:

CREATE CONSTRAINT unique_username_email ON (n:User) ASSERT (n.username, n.email) IS NODE KEY

以上就是在Neo4j中创建约束的示例。请注意,一旦添加了约束,就不能更改其类型或限制条件,因此在创建约束之前,请务必仔细考虑所需的限制。