该DELETE子句用于删除节点、关系或路径。
有关删除属性和标签,请参阅REMOVE子句。
如果不删除关系,则无法删除与其相关的关系的节点。这可以通过明确删除特定关系或使用子句来实现DETACH DELETE。
示例图
下图用于以下示例。图中有四位演员,其中三位是ACTED_IN(Movie The Matrix、Keanu Reeves和Carrie-Anne Moss)Laurence Fishburne,还有一位没有出演的演员(Tom Hanks)。

要重新创建图表,请在空的 Neo4j 数据库中运行以下查询:
CREATE
(keanu:Person {name: 'Keanu Reever'}),
(laurence:Person {name: 'Laurence Fishburne'}),
(carrie:Person {name: 'Carrie-Anne Moss'}),
(tom:Person {name: 'Tom Hanks'}),
(theMatrix:Movie {title: 'The Matrix'}),
(keanu)-[:ACTED_IN]->(theMatrix),
(laurence)-[:ACTED_IN]->(theMatrix),
(carrie)-[:ACTED_IN]->(theMatrix)
删除单个节点
要删除单个节点,请使用以下DELETE子句:
MATCH (n:Person {name: 'Tom Hanks'})
DELETE n
这将删除Person节点Tom Hanks。此查询只能在没有任何关系连接的节点上运行。
删除了 1 个节点
NODETACH 关键字
也可以使用NODETACH DELETE子句删除单个节点。使用NODETACH关键字明确定义不会从节点分离和删除关系。关键字NODETACH是现有关键字DETACH的镜像,它是作为 Cypher ®的GQL 一致性的一部分引入的。包括它在功能上与使用 simple 相同DELETE。
MATCH (n:Person {name: 'Tom Hanks'})
NODETACH DELETE n
这也会删除该Person节点Tom Hanks。
仅删除关系
可以删除某种关系,但与该关系相连的节点不受影响。
MATCH (n:Person {name: 'Laurence Fishburne'})-[r:ACTED_IN]->()
DELETE r
这将从节点ACTED_IN中删除所有传出关系,但不删除节点。PersonLaurence Fishburne
已删除 1 条关系
删除节点及其所有关系
要删除节点及其连接的任何关系,请使用该DETACH DELETE子句。
MATCH (n:Person {name: 'Carrie-Anne Moss'})
DETACH DELETE n
这将删除该Person节点Carrie-Anne Moss及其连接的所有关系。
删除了 1 个节点,删除了 1 个关系
|
|
删除所有节点和关系
可以删除图中的所有节点和关系。
MATCH (n)
DETACH DELETE n
删除了 3 个节点,删除了 1 个关系
|
|
396



被折叠的 条评论
为什么被折叠?



