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

How to insert a newline(\n) inside a String(text) into Cassandra by CQLSH command?

更新: 如果我通过 python 驱动程序脚本插入同一行,则换行符有效。

session.execute("INSERT INTO ctable" + " (cid, cstring) VALUES (%s, %s)", ('2', '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');

None 以上语句有效,所有 \n 都被视为常规字符。 有人可以帮忙吗?

简答:cqlsh 不以任何方式处理字符串中的转义字符。如果您想插入不可打印的字符,如换行符 \n,请使用适合您语言的 cassandra 驱动程序。有关详细答案,请参阅 discussion for issue CASSANDRA-8790

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

我知道现在回复来不及了,但是把答案留给以后像我这样搜索这个问题的人。

您可以试试这个 SQL,只需输入:

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