使用upsert方法插入或更新一条数据时,如何忽略某些字段

需求:插入或更新一条不完整的数据

文档中提到:upsert方法将 ignoreNull参数 设为 true 时的情况。此时,若新数据中有元素值为 NULL,不对目标数据表的相应的元素进行更新操作。
例如下面,不想更新sym字段,则设为NULL,但如此会报错向量应至少有一个不为NULL的值

timestamp = [09:34:07]
sym = [NULL]
qty = [2200]
price= [49.6]
t = table(timestamp, sym, qty, price)
upsert!(tb,t,keyColNames=`timestamp,ignoreNull=true)

请问是否有其他方法实现这一需求?



请先 登录 后评论

最佳答案 2023-12-04 08:56

这个报错是因为不能创建 VOID  类型的向量,DDB的向量都是强类型的,所以你需要根据 sym 的类型进行转换,如过是 STRING 就写 [""], 如果是 int 就写 [int(NULL)] 或者 [00i]

请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,360 浏览
  • 冰雪太阳 提出于 2023-12-01 17:22

相似问题