UPSERT VERTEX
UPSERT VERTEX
性能远低于INSERT
,因为UPSERT
是一组分片级别的读取、修改、写入操作。
如果点不存在,无论WHEN
子句的条件是否满足,都会插入点,同时执行SET
子句,因此新插入的点的属性值取决于:
例如:
SET
子句指定age=30
。
是否满足WHEN 子句条件 | 属性是否有默认值 | name 属性值 | age 属性值 |
---|---|---|---|
是 | 是 | 默认值 | 30 |
是 | 否 | 30 | |
否 | 是 | 默认值 | 30 |
否 | 否 | NULL | 30 |
示例如下:
上面最后一个示例中,因为age
没有默认值,插入点时,age
默认值为NULL
,执行age = age + 1
后仍为NULL
。如果age
有默认值,则age = age + 1
可以正常执行,例如:
如果点存在,且满足WHEN
子句的条件,就会修改点的属性值。