UPSERT EDGE

    UPSERT EDGE性能远低于INSERT,因为UPSERT是一组分片级别的读取、修改、写入操作。

    Danger

    禁止在高并发写操作的情况下使用UPSERT语句,请使用UPDATEINSERT代替。

    如果边不存在,无论WHEN子句的条件是否满足,都会插入边,同时执行SET子句,因此新插入的边的属性值取决于:

    • 属性是否有默认值。

    例如:

    • SET子句指定end_year = 2021

    是否满足WHEN子句条件属性是否有默认值属性值end_year属性值
    默认值2021
    NULL2021
    默认值2021
    NULL2021

    示例如下:

    上面最后一个示例中,因为end_year没有默认值,插入边时,end_year默认值为NULL,执行end_year = end_year + 1后仍为NULL。如果end_year有默认值,则end_year = end_year + 1可以正常执行,例如:

    如果边存在,且满足WHEN子句的条件,就会修改边的属性值。

    如果边存在,但是不满足子句的条件,修改不会生效。