如何在SQLite中插入新行(“ \ n”)字符?

iam*_*ind 4 c++ sqlite newline sql-insert

在尝试插入类似内容时:

"Hello\nWorld"
Run Code Online (Sandbox Code Playgroud)

SQLite抛出类似以下错误:

消息:无法识别的令牌:“'Hello”;“(还有其他一些错误)

即使我将上述字符串转换为"Hello''\nWorld"或"Hello\"\n\"World",这些转义字符序列在这种情况下也不起作用。

当前正在使用C ++语言,我将像其他任何简单字符串列一样插入此列。我尝试了以上转义序列(即使我在Internet上阅读过,它们也无法使用\n)。

如何在SQLite DB中插入换行符和其他此类特殊字符?

CL.*_*CL. 5

在SQL中,没有逃脱换行符的机制。您必须逐字插入它们:

INSERT INTO MyTable VALUES('Hello
world');
Run Code Online (Sandbox Code Playgroud)

或者,动态构造字符串:

INSERT INTO MyTable VALUES('Hello' || char(10) || 'world');
Run Code Online (Sandbox Code Playgroud)

(换行符的类型(13或10或13 + 10)取决于操作系统。)

将SQL语句嵌入C ++字符串时,在第一种情况下必须转义换行符:

q1 = "INSERT INTO MyTable VALUES('Hello\nworld');";
q2 = "INSERT INTO MyTable VALUES('Hello' || char(10) || 'world');";
Run Code Online (Sandbox Code Playgroud)