是否有一种方法可以在Cassandra的集合中插入一个单引号值?这是我的文件:
表:CREATE TABLE test.test (
name text PRIMARY KEY,
values map<text, text>
)
插入:INSERT INTO test (name, values) VALUES ( 'jos''emy',{'foo':'josemy''s house'});
查询:SELECT * FROM test;
name | values
---------+----------------------------
jos'emy | {'foo': 'josemy''s house'}
可以看到,Cassandra替换了简单的"name"字段中的双引号,但没有替换映射中字段中的引号。我想要的结果是:
name | values
---------+----------------------------
jos'emy | {'foo': 'josemy's house'}
我不知道有什么办法。你正在努力做的事情看起来应该会起作用。可能有人忘记检查集合字符串中的转义字符。如果没有人给出答案,你可能想要输入一个票,这样可以进行调查。
报告bug
一种解决方法是将您的选择作为JSON。
cqlsh:gii> insert into test (name,values) values ('Tu''pac',{'fo''o':'josemy''s house'});
cqlsh:gii> select * from test;
name | values
---------+------------------------------
Tu'pac | {'fo''o': 'josemy''s house'}
cqlsh:gii> select json * from test;
[json]
----------------------------------------------------------
{"name": "Tu'pac", "values": {"fo'o": "josemy's house"}}