约束

Neo4j 提供了多种约束,以确保图数据库中数据的质量和完整性。Neo4j 中提供以下约束:

  • 属性唯一性约束:确保特定标签的所有节点或特定类型的所有关系中,组合属性值是唯一的。

  • 属性存在约束:确保特定标签的所有节点或特定类型的所有关系中,属性必须存在。企业版

  • 属性类型约束:确保特定标签的所有节点或特定类型的所有关系中,属性具有所需的属性类型。企业版

  • 键约束:确保特定标签的所有节点或特定类型的所有关系中,所有属性都存在且组合属性值是唯一的。企业版

有关索引支持的约束、约束创建失败、数据违规场景,以及如何创建、列出和删除约束的更多信息,请参阅

有关管理约束的 Cypher® 命令的参考资料,请参阅 语法 → 约束

所有使用旧版 CREATE CONSTRAINT 语法创建的约束都将自动添加到数据库的图类型(graph type)中。然而,并非所有类型的约束都可以使用该语法创建,且随着约束数量的增加,维护单个约束会变得复杂。

因此,建议使用图类型定义模式(schema),它不仅提供了更高级的约束类型,而且为约束和维护图中的数据形态提供了一种更全面、简化的方法。

更多信息,请参阅 图类型