添加外键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表示表格已更新到位。

+0

没有重新定义表格的方法吗?我的桌子有超过600,000行和大约30列 – michaelg

+1

嗨迈克尔,道歉我现在只是看到了这一点。重新定义你的意思是什么?上面的更新创建了外键,并且不会在内存中创建表的副本。谢谢,杰米 – jomahony