(q/kdb+) 从保存在磁盘中的表中删除列

(q/kdb+) Delete column from tables saved in disk

我有以下table保存在磁盘中

`:t/ upsert ([] v1:10 20 30; v2:1.1 2.2 3.3; v3:1 2 3)

例如,我如何删除列 v3

这一行应该可以实现您的目标:

`:/t/.d set `v1`v2

此外,您应该删除 v3 文件。

希望对您有所帮助!

以下应该有效

`:t/ set delete v3 from t

dbmaint.q 是另一种选择:https://github.com/KxSystems/kdb/blob/master/utils/dbmaint.q

这包括用于此目的的函数 delete1col。可以这样使用:

delete1col[tabledir;col]

在你的情况下,这将是:

delete1col[`:t/;`v3]

此脚本还包含许多您将来可能会觉得有用的其他功能。