关于Cypher中DETACH的语法归类及使用场景的技术问询
DETACH在Cypher中的用途说明
DETACH在Cypher里只能与DELETE子句配合使用,没有其他独立或与其他子句搭配的场景。
虽然《Cypher查询语言参考手册第9版》将DETACH列为子句,但这是语法归类上的划分——DETACH DELETE本质是一个组合操作子句,DETACH作为修饰符,唯一作用是让DELETE在删除节点的同时,自动清理该节点关联的所有关系。
如果单独使用DELETE删除仍有连接关系的节点,Cypher会抛出错误(默认不允许删除带有关系的节点,避免孤立关系残留)。而加上DETACH后,就会先删除目标节点的所有关联关系,再删除节点本身,示例如下:
// 删除所有节点及它们的关联关系 MATCH (n) DETACH DELETE n
// 删除指定节点及它的关联关系 MATCH (n {name: 'Andres'}) DETACH DELETE n
目前所有Cypher实现(包括Neo4j等主流图数据库)中,DETACH都没有其他用法,它是DELETE子句的专属修饰符。
内容的提问来源于stack exchange,提问作者KWriter
相关产品推荐
相关产品推荐

