UPDATE EDGE
UPDATE EDGE
语句可以修改边上Edge type的属性。
Nebula Graph支持CAS(compare and set)操作。
语法
UPDATE EDGE ON <edge_type>
<src_vid> -> <dst_vid> [@<rank>]
SET <update_prop>
[WHEN <condition>]
[YIELD <output>]
参数 | 是否必须 | 说明 | 示例 |
---|---|---|---|
ON <edge_type> | 是 | 指定Edge type。要修改的属性必须在这个Edge type内。 | ON serve |
<src_vid> | 是 | 指定边的起始点ID。 | “player100” |
<dst_vid> | 是 | 指定边的目的点ID。 | “team204” |
<rank> | 否 | 指定边的rank值。 | 10 |
SET <update_prop> | 是 | 指定如何修改属性值。 | SET start_year = start_year +1 |
WHEN <condition> | 否 | 指定过滤条件。如果<condition> 结果为false ,SET 子句不会生效。 | WHEN end_year < 2010 |
YIELD <output> | 否 | 指定语句的输出格式。 | YIELD start_year AS Start_Year |
示例
// 用GO语句查看边的属性值。
nebula> GO FROM "player100" \
OVER serve \
YIELD serve.start_year, serve.end_year;
+------------------+----------------+
| serve.start_year | serve.end_year |
+------------------+----------------+
| 1997 | 2016 |
+------------------+----------------+
// 修改属性start_year的值,并返回end_year和新的start_year。
nebula> UPDATE EDGE on serve "player100" -> "team204"@0 \
SET start_year = start_year + 1 \
WHEN end_year > 2010 \
YIELD start_year, end_year;
+------------+----------+
| start_year | end_year |
+------------+----------+
| 1998 | 2016 |
+------------+----------+