我注意到,只有在创建第一个非空/空条目之后,才会为列分配一个String数据类型。
meta select AsOfDate from t
c t f a
AsOfDate
插入记录后:
meta select AsOfDate from t
c t f a
AsOfDate C
是否有更干净的方法将字符串数据类型分配给列?
答案 0 :(得分:2)
某些开发人员存储从未使用或访问的初始化/原型行(行0)。关键值使得调用代码不会获取它。或某种“软删除”标志列
一旦表中有真实的行,您可以删除原型行,但是逻辑很混乱,如果在表中有数百万行或将其持久化到磁盘时删除该行,则可能会耗费大量资金。
我希望表的“元”是粘滞的,以便在删除所有行时保留所有类型。
q)tbl:([] a:1; b:1.1; c:1#enlist "abc")
q)meta tbl
c| t f a
-| -----
a| j
b| f
c| C
q)meta 1_tbl
c| t f a
-| -----
a| j
b| f
c|
答案 1 :(得分:1)
不幸的是,kdb +不允许在表创建期间将列类型定义为列表列表(字符串只是字符列表)。
您已经正确地注意到,必须确保您的第一个条目是字符串类型。