📜  Neo4j-创建唯一约束

📅  最后修改于: 2020-11-27 07:07:02             🧑  作者: Mango


在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"}) 

以下是一个示例Cypher查询,用于使用Neo4j在属性ID上创建UNIQUE约束。

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

要执行上述查询,请执行以下步骤-

步骤1-打开Neo4j桌面应用程序并启动Neo4j服务器。使用URL http:// localhost:7474 /打开Neo4j的内置浏览器应用程序,如以下屏幕截图所示。

浏览器应用

步骤2-将所需查询复制并粘贴到美元提示中,然后按以下屏幕截图中突出显示的播放按钮(以执行查询)。

创造独特

结果

执行时,您将得到以下结果。

增加了约束

验证

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

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

如果执行此查询,您将收到一条错误消息,如以下屏幕截图所示。

节点标签播放