6

我知道这个资源。但它没有说明.u.upd需要什么参数以及如何检查它是否有效。

该语句执行没有错误,尽管它似乎没有做任何事情:

.u.upd[`t;(`$"abc";1;2;3)]

如果我事先定义表格,例如

t:([] name:"aaa";a:1;b:2;c:3)

那么上面.u.upd仍然运行没有错误,并且没有改变t

4

2 回答 2

5

.u.upd具有与前缀形式的insert(参见http://code.kx.com/q/ref/qsql/#insert )相同的函数签名。在最简单的情况下,.u.upd可能会被定义为insert

所以: .u.upd[`table;<records>]

例如:

q).u.upd:insert
q)show tbl:([] a:`x`y;b:10 20)
   a b
   ----
   x 10
   y 20
q).u.upd[`tbl;(`z;30)]
   ,2
q)show tbl
   a b
   ----
   x 10
   y 20
   z 30
q).u.upd[`tbl;(`a`b`c;1 2 3)]
   3 4 5
q)show tbl
   a b
   ----
   x 10
   y 20
   z 30
   a 1
   b 2
   c 3
于 2013-11-20T23:56:29.333 回答
3

可在此处找到包含事件序列、连接图等的自动收报机文档: http ://www.timestored.com/kdb-guides/kdb-tick-data-store

在此处输入图像描述

.u.upd[表名;tableData]接受两个参数,用于将数据插入到命名表中。这个函数通常会从 feedhandler 中调用。它获取 tableData,如果存在时间列,则添加时间列,将其插入内存表中,附加到日志文件,最后增加日志文件计数器。

于 2014-08-16T15:14:51.307 回答