如何通过CQLSH命令将字符串(文本)中的换行符(\ n)插入到Cassandra中?

时间:2015-12-09 00:23:25

标签: cassandra cqlsh cassandra-cli

更新: 如果我通过python驱动程序脚本插入相同的行,则换行符正在工作。

session.execute(" INSERT INTO ctable" +"(cid,cstring)VALUES(%s,%s)",(' 2&# 39;,' row1 \ nrow2')

仍然不明白为什么CQLSH命令不起作用。

原始问题: 我试图通过CQLSH命令在Cassandra中插入一个非常长的字符串,并添加一个' \ n'在显示时将字符串分成两行。

我试过

insert into ctable (cid, cstring ) values('2', 'row1\nrow2');
insert into ctable (cid, cstring ) values('2', 'row1\\nrow2');
insert into ctable (cid, cstring ) values('2', 'row1\r\nrow2');

上述陈述均无效,所有 \ n 均被视为常规字符。 有人可以帮忙吗?

3 个答案:

答案 0 :(得分:4)

简短回答:cqlsh不以任何方式处理字符串中的转义字符。如果要插入不可打印的字符(如换行符\ n),请使用适用于您的语言的cassandra驱动程序。如需长篇答案,请参阅discussion for issue CASSANDRA-8790

答案 1 :(得分:2)

如果您在键入字符串时实际按Enter键,则可以直接在CQLSH中执行此操作。而不是输入字符'\ n'只需按Enter键。 CQLSH应该显示3个点,表示它在新行上的添加内容。

我知道回复已太晚了,但是对于像我这样将来会搜索这个问题的人来说,这个答案就在这里。

答案 2 :(得分:0)

您可以尝试使用此SQL,只需使用Enter键即可:

insert into ctable (cid, cstring ) values('2', 'row1
row2');