用单引号在集合值中插入Cassandra



是否有一种方法可以在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"}}

最新更新