扫码一下
查看教程更方便
在 neo4j 数据库中,cql create 命令总是创建一个新节点或关系,这意味着即使我们使用相同的值,它也会插入一个新行。 根据我们对某些节点或关系的应用程序要求,我们必须避免这种重复。 为此,我们应该使用一些数据库约束来为节点或关系的一个或多个属性创建规则。
与 sql 一样,neo4j 数据库也支持节点或关系属性的 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
执行完成后,我们将得到以下结果。
现在,尝试添加另一个具有冗余 id 值的节点。 在这里,我们尝试创建一个 id 为 002 的节点。
create (jadeja:player {id:002, name: "ravindra jadeja", yob: 1988, pob: "navagamghed"})
如果执行此语句,我们将收到一条错误消息,如下所示。