跳转至

DELETE VERTEX

DELETE VERTEX语句可以删除点,但是默认不删除该点关联的出边和入边。

Compatibility

NebulaGraph 2.x 默认删除点及关联该点的出边和入,NebulaGraph 3.3.0 默认只删除点,不删除该点关联的出边和入边,此时将默认存在悬挂边。

DELETE VERTEX语句一次可以删除一个或多个点。用户可以结合管道符一起使用,详情请参见管道符

Note

  • DELETE VERTEX是直接删除点,不删除关联的边。
  • DELETE TAG是删除指定点上的指定 Tag。

语法

DELETE VERTEX <vid> [ , <vid> ... ] [WITH EDGE];
  • WITH EDGE: 删除该点关联的出边和入边。

示例

# 删除 VID 为 `team1` 的点,不删除该点关联的出边和入边。
nebula> DELETE VERTEX "team1";

# 删除 VID 为 `team1` 的点,并删除该点关联的出边和入边。
nebula> DELETE VERTEX "team1" WITH EDGE;
# 结合管道符,删除符合条件的点。
nebula> GO FROM "player100" OVER serve WHERE properties(edge).start_year == "2021" YIELD dst(edge) AS id | DELETE VERTEX $-.id;

删除过程

NebulaGraph 找到目标点并删除,该目标点的所有邻边(出边和入边)将成为悬挂边。

Caution

  • 不支持原子性删除,如果发生错误请重试,避免出现部分删除的情况。否则会导致悬挂边。
  • 删除超级节点耗时较多,为避免删除完成前连接超时,可以调整nebula-graphd.conf中的参数--storage_client_timeout_ms延长超时时间。

悬挂边视频


最后更新: December 2, 2022