删除实体
match(n:Peson) delete n;
删除实体+关系
如果实体包含关系,直接删除时无法删除的,可以用级联删除。
match(n:Peson) detach delete n;
match(n:实体) detach delete n; 会把对应的索引也删除吗?
MATCH (n:实体) DETACH DELETE n;
这条 Cypher 查询的作用是删除指定标签的节点(在此例中是 实体
标签的节点),并且删除节点与其他节点之间的所有关系。但 它不会删除索引。
解释:
MATCH (n:实体)
:匹配所有标签为实体
的节点。DETACH DELETE n
:删除节点n
和与其相关的所有关系。DETACH
关键字确保关系也被删除,因为节点删除时不能有剩余的关系。
重要点:
- 索引不会被删除:执行此操作只会删除节点及其关联的关系。索引和约束是独立于节点和关系的数据结构,因此删除节点时不会影响索引的存在或结构。
- 删除索引:如果你希望删除某个索引或约束,你需要使用专门的命令。例如,删除索引的命令如下:
DROP INDEX ON :实体(属性名);
或者,如果你是删除一个名称为 entity_index
的索引:
DROP INDEX entity_index;
总结:
使用 DETACH DELETE
删除节点和关系时,不会影响现有的索引。
索引需要通过专门的命令删除。
如果你不想保留索引,需要手动执行删除索引的命令。