KDB 从表更新字典列

问题描述 投票:0回答:1

我有一个名为“详细信息”的表,其中有 2 列:“person(s)”和“personData(dict)” personData 基本上是一个包含所有人员信息的字典。

如果我想在字典中添加一个额外的条目,我该怎么做? 我希望更新 personData 以保存电话号码。

电话号码:1234 9594(是号码列表) 当我跑步时:

(flip details`personData),enlist[`telNo]!(enlist telNos)

它可以工作,但这是我把字典拆开,而我需要立即更新整个表格。

kdb q
1个回答
0
投票

假设

q)show t:([]person:`a`b;personData:(`name`age!(`aa;1);`name`age!(`bb;2)))
person personData
------------------------
a      `name`age!(`aa;1)
b      `name`age!(`bb;2)

您可以使用

更新一条记录
q)update @[;`telNo;:;111]personData from t where person=`a
person personData
----------------------------------
a      `name`age`telNo!(`aa;1;111)
b      `name`age!(`bb;2)

或全部

q)update @'[;`telNo;:;111 222]personData from t
person personData
----------------------------------
a      `name`age`telNo!(`aa;1;111)
b      `name`age`telNo!(`bb;2;222)
© www.soinside.com 2019 - 2024. All rights reserved.