DELETE子句用于删除图元素,包括节点、关系或路径。
终止性DELETE子句
一个不被其他子句跟随的DELETE子句被称为终止子句。当Cypher查询以终止子句结束时,Cypher函数调用不会返回任何结果。然而,Cypher函数调用仍然需要一个列表定义。当Cypher以终止节点结束时,在列列表定义中定义一个单一值:在这个变量中不会返回任何数据。
简介
对于删除属性,请参见REMOVE。
您不能在不删除从该顶点开始或结束的边的情况下删除一个节点。您可以选择显式地删除这些顶点,或者使用DETACH DELETE。
删除孤立顶点
要删除一个孤立顶点,使用DELETE子句。
示例
SELECT *
FROM cypher('graph_name', $$
MATCH (v:Useless)
DELETE v
$$) as (v agtype);这将删除没有边的顶点(带有标签 Useless)。此查询不会返回任何结果。
v
---
(0 rows)删除所有顶点及其关联的边
使用MATCH子句收集所有节点,然后使用DETACH选项可以先删除顶点的边,然后再删除顶点本身。
示例
SELECT *
FROM cypher('graph_name', $$
MATCH (v:Useless)
DETACH DELETE v
$$) as (v agtype);此查询不会返回任何结果。
v
---
(0 rows)删除边
要删除一条边,请使用MATCH子句找到目标边,然后将变量添加到DELETE子句中。
示例
SELECT *
FROM cypher('graph_name', $$
MATCH (n {name: 'Andres'})-[r:KNOWS]->()
DELETE r
$$) as (v agtype);此查询不会返回任何结果。
v
---
(0 rows)返回已删除的顶点
您可以使用RETURN子句返回已被删除的顶点。
示例
SELECT *
FROM cypher('graph_name', $$
MATCH (n {name: 'A'})
DELETE n
RETURN n
$$) as (a agtype);此查询不会返回任何结果。
a
----------------------------------------------------------------------------
{"id": 281474976710659, "label": "", "properties": {"name": "A"}}::vertex
(1 row)该文章对您有帮助吗?