KDB如何在根名称空间中从另一个名称空间分配值?

时间:2018-11-26 16:59:33

标签: kdb

我在根命名空间中有一个表(feed_exclude),我想在不使用\ d更改为该命名空间的情况下重新分配该表。

#![feature(inner_deref)]

fn main() {
    let opt: Option<String> = Some("some value".to_owned());
    let value = opt.deref().unwrap_or("default string");
}

如何在根名称空间`中分配表。无需使用\ d更改为名称空间。 ??

我已经检查了assign运算符两侧的meta是否等效。删除assign运算符(:)后,代码可以正确执行。

>feed_exclude
feed      table
---------------
`feed1    `table1

\d .mon
`.[`feed_exclude],:flip enlist each first select feed,tab from 0!`.[`feed_table]
'2018.11.26T16:30:51.643 assign

任何帮助将不胜感激

谢谢

4 个答案:

答案 0 :(得分:1)

如果您尝试在根名称空间中引用变量,则可以在变量的符号名称前加上..。您的情况应该是`..feed_exclude

然后可以使用insert附加到表中。

\d .mon `..feed_exclude insert flip enlist each first select feed,tab from 0!`.[`feed_table]

希望有帮助。

答案 1 :(得分:1)

一种选择是使用upsert或insert和符号`..表示法引用根名称空间

q)t:([]1 2 3)
q)\d .test
q.test)`..t upsert ([]10 20 30)
`..t
q.test)`..t insert ([]10 20 30)
6 7 8

答案 2 :(得分:1)

您还可以使用'set'更新全局命名空间中的变量:

q) `..feed_exclude set `.[`feed_exclude], flip enlist each first select feed,tab from 0!`[`feed_table]

答案 3 :(得分:0)

尝试以下

@[`.;`feed_exclude;,;flip enlist each first select feed,tab from 0!`.[`feed_table]]