在neo4j中我们还可以创建约束,比如我们约束所有的节点里面的节点name属性不能重复,这就相当于一个约束。下面我们来演示一下:
1、在节点上创建约束
在neo4j中,如果没有约束的话,我们可以创建多个相同的节点,例如我们创建多个名称为张三的节点:
#执行4遍如下的语句 create (a:Person{name:'张三',age:5}) return a
执行完毕之后,我们可以看到有4个一模一样的节点:
然后我们删除掉所有数据,然后创建约束,要求name属性是唯一的:
#清空整库脚本 MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n, r #创建约束 CREATE CONSTRAINT FOR (p:Person) REQUIRE p.name IS UNIQUE #新增数据 create (a:Person{name:'张三',age:5}) return a
执行之后,我们可以看到第一遍添加数据是没问题的,第二遍就会直接抛错,提示:name=张三的节点已存在,示例图如下:
最后我们查看节点和关系的时候,可以看到只成功创建了一个节点:
2、创建关系约束
当然这里创建约束的时候,我们还可以在关系上进行约束,类似的语法如下:
CREATE CONSTRAINT r1 FOR ()-[r:兄弟]-() REQUIRE r.hash IS UNIQUE
这里语法上,我们可以看到是在关系的属性上进行的约束,而不是在关系名称上建立约束。
3、查看所有约束
当然我们还可以查看已经创建的所有约束,示例如下:
SHOW CONSTRAINTS
4、删除约束
我们还可以删除某个约束,删除语法是:
drop CONSTRAINT r1
还没有评论,来说两句吧...