我在 CQl3 中有下表
create table userInfo
(
userid text,
email text,
firstName text,
lastName text,
city text,
Primary key (userid,email)
);
现在我想根据用户选择动态地将两列 COL1 和 COL2 添加到此表中。我该怎么做?
我做了以下事情
ALTER TABLE ADD COL1 text;
ALTER TABLE ADD COL2 text;
它将 COL1 和 COL2 添加到表中。 然后,当我插入 userInfo(..,..,COL1,..) values(..,..,'some value',..) 时,它只是将 NULL 放入 COL1 中。
建议一些动态添加列的好方法。如果我有大量要添加的列,我认为 ALTER table 不是好方法。我正在使用 java 程序中的 Hector 库来动态添加列。
最佳答案
也许 CQL 不是您的最佳选择。 CQL 要求您预先定义架构以允许类似 SQL 的语法功能,但它剥夺了 Cassandra 的一些有用的动态功能。使用几乎所有 Cassandra 客户端的基于 Thrift 的突变功能,您可以简单地命名要写入的列,如果它不存在,则会为您创建。
例如:
ks.insert(key, createColumnPath(colName), bytes(value));
关于cassandra - 在cassandra表中动态添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14806643/