修改Cassandra UDT TYPE以添加多个属性的查询是什么?

问题描述 投票:0回答:1

我有一个Cassandra UDT列,大约有10个属性,现在我们打算再添加3个属性。要添加这三个属性的查询是什么。我可以通过执行3个不同的查询来逐一添加它们,如 alter TYPE commentmetadata ADD columnname1 <type>;, alter TYPE commentmetadata ADD columnname2 <type>;, alter TYPE commentmetadata ADD columnname3 <type>;.

这可以在一个查询中完成吗?Datastax的文档中提到,可以通过这样的方式来实现。ALTER TYPE commentmetadata ADD (field_name cql_datatype[,...]) 通过在逗号分隔的列表中输入字段名和数据类型来添加字段。我尝试了以下3个查询,但都出现了查询错误。

ALTER TYPE commentmetadata ADD columnname1 int, columnname2 int, columnname3 int;
ALTER TYPE commentmetadata ADD [columnname1 int, columnname2 int, columnname3 int]; 
ALTER TYPE commentmetadata ADD (columnname1 int, columnname2 int, columnname3 int);
cassandra user-defined-types alter
1个回答
0
投票

根据 CQL语法但这是不可能的。

/**
 * ALTER TYPE <name> ALTER <field> TYPE <newtype>;
 * ALTER TYPE <name> ADD <field> <newtype>;
 * ALTER TYPE <name> RENAME <field> TO <newtype> AND ...;
 */
alterTypeStatement returns [AlterTypeStatement.Raw stmt]
    : K_ALTER K_TYPE name=userTypeName { $stmt = new AlterTypeStatement.Raw(name); }
      (
        K_ALTER   f=fident K_TYPE v=comparatorType { $stmt.alter(f, v); }

      | K_ADD     f=fident v=comparatorType        { $stmt.add(f, v); }

      | K_RENAME f1=fident K_TO toF1=fident        { $stmt.rename(f1, toF1); }
         ( K_AND fn=fident K_TO toFn=fident        { $stmt.rename(fn, toFn); } )*
      )
    ;

你可以为Cassandra提交一个JIRA来添加这样的功能。

P.S. 你能指出DataStax文档中写的那一页吗?

© www.soinside.com 2019 - 2024. All rights reserved.