添加外键KDB现有表
问题描述:
我需要一个外键添加到我已经使用CSV添加外键KDB现有表
table:("SSSSSSSSSFFFFSSSSSFSSSSSSSSSSSSSSS"; enlist ",") 0:
`:table.csv
我不希望有重新定义整个表导入的表。有没有办法做到这一点?
答
q)p:([p:`p1`p2`p3`p4`p5`p6]name:`nut`bolt`screw`screw`cam`cog;color:`red`green`blue`red`blue`red;weight:12 17 17 14 12 19;city:`london`paris`rome`london`paris`london)
q)sp:([]s:`s1`s1`s1`s1`s4`s1`s2`s2`s3`s4`s4`s1;p:`p$`p1`p2`p3`p4`p5`p6`p1`p2`p2`p2`p4`p5;qty:300 200 400 200 100 100 300 400 200 200 300 400)
q)
q)update `p$p from `sp
`sp
q)meta sp
c | t f a
---| -----
s | s
p | s p
qty| j
定义外键类似于列举/铸造,因此使用$超载。
`sp表示表格已更新到位。
没有重新定义表格的方法吗?我的桌子有超过600,000行和大约30列 – michaelg
嗨迈克尔,道歉我现在只是看到了这一点。重新定义你的意思是什么?上面的更新创建了外键,并且不会在内存中创建表的副本。谢谢,杰米 – jomahony