您好我有在卡桑德拉分贝的ColumnFamily和当我检查表的内容中,示出不同地卡桑德拉CQL2:无法更新列
./cqlsh -2
select * from table1;
KEY,31281881-1bef-447a-88cf-a227dae821d6 | A,0xaa| Cidr,10.10.12.0/24 | B,0xac | C,0x01 | Ip,10.10.12.1 | D,0x00000000 | E,0xace | F,0x00000000 | G,0x7375626e657431 | H,0x666230363 | I,0x00 | J,0x353839
使用时虽然输出是作为本作
./cqlsh -3
select * from table1;
key | Cidr | Ip
--------------------------------------+---------------+------------
31281881-1bef-447a-88cf-a227dae821d6 | 10.10.12.0/24 | 10.10.12.1
该值是使用java程序运行插入的。
我想假设只有在数据库中手动使用-2选项时才会看到coulmn“B”的更新值,它给了我错误,它是十六进制值。 我使用这个命令来更新,但总是得到错误
cqlsh:sdnctl_db> update table1 SET B='0x7375626e657431' where key='31281881-1bef-447a-88cf-a227dae821d6';
Bad Request: cannot parse '0x7375626e657431' as hex bytes
cqlsh:sdnctl_db> update table1 SET B=0x7375626e657431 where key='31281881-1bef-447a-88cf-a227dae821d6';
Bad Request: line 1:30 no viable alternative at input 'x7375626e657431'
cqlsh:sdnctl_db> update table1 SET B=7375626e657431 where key='31281881-1bef-447a-88cf-a227dae821d6';
Bad Request: line 1:37 mismatched character '6' expecting '-'
我需要插入的十六进制值仅会被应用程序所回升,但无法插入。
请帮助我纠正语法。
这些命令工作完全使用CQL 3.0 但问题是,我想编辑使用CQL 2只中出现的数据或通过附加“-2”选项与cqlsh 想我现在开始-2选项,检查内容的测试表,他们是如下关于 [cqlsh 2.3.0 | Cassandra 0.0.0 | CQL规范2.0.0 | Thrift协议19.35.0] 使用帮助寻求帮助。 cqlsh>使用如此; cqlsh:so> SELECT * FROM test; b | '\ x00 \ x00 \ x00'| '\ x00 \ x01a \ x00' --- + ---------------- + ----------------- 0 | 0x | 0x62 – tarun
现在更新它并添加另一个coulmn作为 cqlsh:so> update test set x =''其中b = 0; cqlsh:so> SELECT * FROM test; b | '\ x00 \ x00 \ x00'| '\ x00 \ x01a \ x00'| '\ x00 \ x01x \ x00' --- + ---------------- + ----------------- + - --------------- 0 | 0x | 0x62 | 0x 但是这个命令失败如下 cqlsh:so> update test set x = textAsBlob('5')where b = 0; (' cqlsh:sdnctl_db>更新测试集x = 5其中b = 0; 错误请求:无法以十六进制字节解析'5' – tarun
[参考blob in cassandra 1.2](http://docs.datastax.com/en/cql/3.0/cql/cql_reference/blob_r.html)提到'set col = 0xABC123'命令应该可以工作,但是其他几个网站都说cqlsh v2已被弃用,您应该转移到v3。我知道这并不回答你的问题,但我不能真正在我的机器上测试它:'cqlsh:error:'2.0.0'不是支持的CQL版本.' – csima