gpt4 book ai didi

database - 使用外键创建 KDB+/Q 表

转载 作者:搜寻专家 更新时间:2023-10-30 20:09:08 25 4
gpt4 key购买 nike

我的问题是关于使用 q 创建一个表并使用外键。我知道如何通过以下方式做到这一点

q)T1:([id:1 2 3 4 5]d1:"acbde")
q)T2:([id:1 2 3 4 5]f1:`T1$2 2 2 4 4)

但现在假设我想用 ! 运算符以这种方式翻转字典来创建表

q)T3:1!flip ((`id`f1 )!((1 2 3 4 5);(2 2 2 4 4)))

如何通过这种建表方式为表T1的主键设置外键。

更新

好吧,我认为我上面的例子足以让我自己解决我的实际问题,但不幸的是它不是。

如果我有这个列表布局 A 和 B 怎么办

q)A:enlist 1 2 3 4 5
q)B:(enlist "abcde"), (enlist `v`w`x`y`z)
q)flip (`id`v1`v2)!(B,A)

如何将列表 A 作为表 T1 的外键?

更新 2

如果我有来自某处的 A 而不是我自己初始化它,我将如何实现它。我必须从列表中复制一份吗?

最佳答案

您可以在列值列表上使用相同的语法:

q)T3:1!flip ((`id`f1 )!((1 2 3 4 5);(`T1$2 2 2 4 4)))
q)T3~T2
1b

更新:

同样对于这种情况,我们可以在列表上使用相同的语法 -

q)A:enlist`T1$1 2 3 4 5
q)meta flip (`id`v1`v2)!(B,A)
c | t f a
--| ------
id| c
v1| s
v2| j T1

更新2:

同样的语法应用于变量名:

q)A:1 2 3 4 5
q)meta flip (`id`v1`v2)!(B,enlist`T1$A)
c | t f a
--| ------
id| c
v1| s
v2| j T1

关于database - 使用外键创建 KDB+/Q 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30670038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com