我在cassandra数据库中有一个带有一些静态列的表,我希望为它添加另一个静态列。有没有办法改变表,以便新列是静态的?
答案 0 :(得分:3)
假设您的密钥空间为key
,表格架构为:
CREATE TABLE p (
k text,
s text STATIC,
i int,
PRIMARY KEY (k, i) );
然后你可以执行
ALTER TABLE p ADD f text STATIC;
答案 1 :(得分:2)
正如Will的回答所指出的,这可能取决于您使用的是哪个版本。 CQL 3.1的ALTER documentation(Cassandra 2.0和2.1)声明:
不允许在表格中添加这些内容:
- 添加与现有列名称相同的列
- 静态列
虽然显然它适用于2.1.9。
另外需要注意的是,您无法将现有列更改为静态列。
aploetz@cqlsh:stackoverflow> ALTER TABLE bills2 ALTER amount TYPE bigint static;
SyntaxException: <ErrorMessage code=2000 [Syntax error in CQL query] message="line 1:44 missing EOF at 'static' (...bills2 ALTER amount TYPE bigint [static];)">