无法更改/更改cql cassandra

时间:2018-03-16 12:48:18

标签: cassandra cql cqlsh

CREATE TABLE mykespace.newtable (
    name text PRIMARY KEY,
    marks int,
    score float,
    value float,
    value2 blob
)

cqlsh:mykespace> alter table newtable alter value type int;
InvalidRequest: Error from server: code=2200 [Invalid query] message="Altering of types is not allowed"

cqlsh:mykespace> alter table newtable alter value2 type varint;
InvalidRequest: Error from server: code=2200 [Invalid query] message="Altering of types is not allowed"

无法更改数据类型,甚至int更改为varint,并且浮动到int

1 个答案:

答案 0 :(得分:0)

自Cassandra 3.10和3.0.11起,使用CASSANDRA-12443删除了更改列数据类型的功能。

  

...因为我们不再存储所有类型的长度,从固定宽度切换到可变宽度类型会导致问题。 commitlog回放破坏启动,当前正在运行的查询返回错误结果,以及处理更改所需的特殊大小。

这里最好的解决方法是删除现有列,并创建一个具有不同名称的新列(以避免commitlog重放的潜在问题)。类似的东西:

ALTER TABLE mykeyspace.newtable DROP value;
ALTER TABLE mykeyspace.newtable ADD value_int int;