INSERT EDGE
INSERT EDGE
的执行方式为覆盖式插入。如果已有Edge type、起点、终点、rank都相同的边,则覆盖原边。
IF NOT EXISTS
:用户可以使用IF NOT EXISTS
关键字检测待插入的边是否存在,只有不存在时,才会插入。Note
-
IF NOT EXISTS
仅检测<边的类型、起始点、目的点和rank>是否存在,不会检测属性值是否重合。 -IF NOT EXISTS
会先读取一次数据是否存在,因此对性能会有明显影响。:需要设置的属性名称列表。
src_vid
:起始点ID,表示边的起点。dst_vid
:目的点ID,表示边的终点。<prop_value_list>
:根据prop_name_list
填写属性值。如果属性值和Edge type中的数据类型不匹配,会返回错误。如果没有填写属性值,而Edge type中对应的属性设置为,也会返回错误。详情请参见CREATE EDGE。
示例
一条边可以多次插入属性值,以最后一次为准。
使用IF NOT EXISTS
插入已存在的边时,不会进行修改。
- Nebula Graph 2.6.1 允许存在悬挂边(Dangling edge)。因此可以在起点或者终点存在前,先写边;此时就可以通过
<edgetype>._src
或<edgetype>._dst
获取到(尚未写入的)点VID(不建议这样使用)。 - 目前还不能保证操作的原子性,如果失败请重试,否则会发生部分写入。此时读取该数据的行为是未定义的。
边的INSERT速度
大约是点的INSERT速度一半。原因是INSERT边会对应storaged的两个INSERT,INSERT点
对应storaged的一个INSERT。
最后更新: July 2, 2021