upsert default column 异常问题

建表:
CREATE EDGE tedge2 (location string, since int , end int default now());
UPSERT EDGE 12->13 of tedge2 SET since = 121212 , location = ‘bj’ ;
go from 12 over tedge2 YIELD tedge2.end;
结果:

| tedge2.end |

0

为什么 upsert 过程中default列不是now() 而是 0 。

用的是哪个版本呢?

请您更新到最新版本试试看呢?

版本信息是version rc4 最新版是已经修复该问题了吗 是否有对应的patch或者相关issue?

v1.0.0 版本是否已经修复了这个问题呐? 有相应的patch 或者issue吗?

1.0 应该是修了
可以参考下

RU_OUTPUT_VALUE 那个宏

很有帮助 谢谢 :pray:

很有帮助 谢谢 :pray:

1 个赞

默认值是0 的问题现在没有了。但是default now() 和我们预期的需求不一样,我们期望边的end属性default 是插入数据时的值而不是建表时的时间戳。 这样的需求在建边的时候怎么去写create语句

upsert时可以指定default值,或者插入时指定时间为now。这样会比较合理。

@George 其实业务是想记录这个边最早存在的时间 目前支持max(a,b) 这样从两个值中返回较大或者较小的值的function吗?

UPSERT EDGE 12->13 of tedge2 SET since = 121212 , location = ‘bj’, end = now()

您好,这样使用可以不?

不行的 如果end有值 希望他不被更新的。 @dingding

很抱歉,默认值表达式的现在是算出来的结果作为默认值的值,我们会在2.0版本支持上默认值存的是表达式,1.0就不做修改了。

支持的函数见文档链接

https://docs.nebula-graph.io/manual-EN/2.query-language/2.functions-and-operators/built-in-functions/#math