Kdb+中能否创建仅含单个空主键列的空表?
关于kdb/q中仅含单个空主键列的键表创建问题
在kdb/q中,确实不允许创建仅包含单个空主键列的键表,这是由键表的设计逻辑决定的:键表本质是带主键约束的表,主键的作用是唯一标识行,但当主键列是空且没有其他列时,无法满足键表的基本结构要求。
结合你的测试代码逐一说明:
// 创建失败:仅单个空主键列的键表不符合kdb/q的约束 et :([pk:`symbol$()]) // 创建成功:键表包含主键列+额外列,满足键表的结构要求 emptyTable:([primaryKey:`symbol$()] c1:()) // 创建成功:普通表无主键约束,单个空列完全合规 t1:([]c1:())
简单总结区别:
- 普通表(通过
([]...)创建)没有主键约束,单个空列是合法的; - 键表(通过
([...]...)创建)要么主键列包含实际数据,要么搭配至少一个其他列,否则无法创建。
内容的提问来源于stack exchange,提问作者Xavier Z
相关产品推荐
相关产品推荐

