我在cql3中定义了一个表。描述它会返回以下内容:
创建表结果(
id uuid PRIMARY KEY,
案例名称文本,
结果文本,
run int,
用户文字
)WITH ...
我尝试使用以下事实:这不应该限制columnfamily并添加新的列值对:
insert into results (id, sogginess) values(3d6f63a4-c1e0-4dd8-b043-8e0754122f23, 'high') ;
但这不起作用。如果我使用cassandra-cli,我可以使用标准集语法添加sogginess的值,并且行正常保留。即使切换回cql3,select *查询也不会返回这个新列,并且两个描述都没有显示新列的sogginess。
这意味着你不能将任意数据添加到cql3中的行中并且你受到定义的模式的约束?如果没有,我该怎么办?
答案 0 :(得分:4)
<强> TL; DR; 强>
不,但您可以使用集合:phonenumbers set<text>
CQL 3期望在元数据中定义所有列,因此您可以绑定到模式。
嗯,你不能。您可以做的是使用集合并构建数据模型。通过thrift添加任意列被认为是不良做法。我的建议是阅读datastax关于wide row support in CQL3的文章。这些问题也是相关的(如果不重复......)所以请看看它们:如果没有,我该怎么做?