Neo4j 创建唯一(Unique)约束

在 Neo4j 数据库中,CQL CREATE 命令总是创建一个新节点或关系,这意味着即使我们使用相同的值,它也会插入一个新行。 根据我们对某些节点或关系的应用程序要求,我们必须避免这种重复。 为此,我们应该使用一些数据库约束来为节点或关系的一个或多个属性创建规则。

与 SQL 一样,Neo4j 数据库也支持节点或关系属性的 UNIQUE 约束。 UNIQUE 约束用于避免重复记录并强制执行数据完整性规则。

创建 UNIQUE 约束

Neo4j CQL 提供 CREATE CONSTRAINT 命令来创建节点或关系属性的唯一约束。

语法

以下是在 Neo4j 中创建 UNIQUE 约束的语法。

MATCH (root {name: "Dhawan"}) 
CREATE UNIQUE (root)-[:LOVES]-(someone) 
RETURN someone 

在继续该示例之前,创建 4 个节点,如下所示。

CREATE(Dhawan:player{id:001, name: "shikar Dhawan", YOB: 1995, POB: "Delhi"}) 
CREATE(Jonathan:player {id:002, name: "Jonathan Trott", YOB: 1981, POB: "CapeTown"}) 
CREATE(Sangakkara:player {id:003, name: "Kumar Sangakkara", YOB: 1977, POB: "Matale"}) 
CREATE(Rohit:player {id:004, name: "Rohit Sharma", YOB: 1987, POB: "Nagpur"}) 
CREATE(Virat:player {id:005, name: "Virat Kohli", YOB: 1988, POB: "Delhi"}) 

以下是使用 Neo4j 在属性 id 上创建唯一约束的 CQL 示例。

CREATE CONSTRAINT ON (n:player) ASSERT n.id IS UNIQUE

执行完成后,我们将得到以下结果。

neo4j cql 创建唯一索引

验证

现在,尝试添加另一个具有冗余 id 值的节点。 在这里,我们尝试创建一个 id 为 002 的节点。

CREATE (Jadeja:player {id:002, name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"}) 

如果执行此语句,我们将收到一条错误消息,如下所示。

neo4j cql 验证唯一索引

查看笔记

扫码一下
查看教程更方便