似乎动态添加新列在 Cassandra CQL3 中不起作用;说我有这张桌子:
cqlsh:Keyspace2> 从用户中选择 *;
用户名 | 出生年份 | 性别 | 密码 | session_token | 状态
------------+------------+--------+------------+--- ------------+--------
史密斯 | 1968 | 空 | ch@ngem3a | 空 | 无效的
史密斯2 | 1963 | 空 | ch@ngem3a2 | 空 | 无效的
cqlsh:Keyspace2> 插入用户 (user_name, x) 值 ('jsmith',100);
>错误请求:未知标识符 x
也许您打算使用 CQL 2?启动 cqlsh 时尝试使用 -2 选项。
但警告是正确的,当我去 CQL2 时同样的事情:
> Blockquote
cqlsh:Keyspace2> exit
[root@bdvm1 ~]# cqlsh
Connected to Test Cluster at localhost:9160.
[cqlsh 2.2.0 | Cassandra 1.1.9-dse-2.2.2-SNAPSHOT | CQL spec 2.0.0 | Thrift protocol 19.33.0]
Use HELP for help.
cqlsh> use Keyspace1;
cqlsh:Keyspace1> select * from users;
KEY | birth_year | gender
-------+------------+--------
TEST | 1968 | m
TEST1 | 1968 | f
cqlsh:Keyspace1> insert into users (KEY, x) values ('jsmith',100);
cqlsh:Keyspace1> select * from users;
KEY,TEST | birth_year,1968 | gender,m
KEY,TEST1 | birth_year,1968 | gender,f
KEY,jsmith | x,100
有谁知道为什么?我原以为 CQL3 是向后兼容的..
谢谢,马特