cassandra - 更改 Cassandra UDT 类型以添加多个属性的查询是什么
问题描述
我有一个 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);
解决方案
根据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 以添加此类功能。
PS你能指出它在DataStax文档中写的页面吗?
推荐阅读
- python - cuda lstm 未指定的启动失败错误
- ios - Xcode 在没有更新代码的情况下运行 iOS 应用程序。离子实时重新加载不起作用
- php - PHP升序保持相同的键
- sql - 声明为 Varchar(8000) 的 SQL 变量在 5160 处修剪内容
- c++ - 使用 Cmake 设置 Qt QML 单元测试
- javascript - 视频进度未在点击时更新 - Javascript
- python - 修改 Anaconda 站点包位置
- java - 导航到上一个片段并销毁当前片段
- java - JFR 如何计算事件开始时间?
- macos - 启动詹金斯容器但是遇到权限被拒绝虽然我已经为卷运行了“chown”