换行:从MySQL迁移到SQLite

时间:2014-07-08 07:44:16

标签: mysql sqlite

目前我遇到的问题是,当我将数据放入SQLite数据库时,将忽略来自MySQL转储的换行符。 MySQL转储的“\ r \ n”将SQLite解释为字符串,所以我在应用程序中使用了“nomnomnom \ r \ nnnnnnnnom”这样的句子而不是“nomnomnom

nomnomnom”。

所以我的问题是我有什么办法让SQLite正确读取换行符?我已经搜索了很多,以找出SQLite需要什么样的换行语法,但令我惊讶的是我没有找到任何明确的答案。

1 个答案:

答案 0 :(得分:0)

SQL没有反斜杠转义(这是一个MySQL怪癖)。

要将MySQL转储转换为真实SQL,请使用编辑器或某些脚本转换这些转义序列:

\n -> new line
\r -> carriage return
\" -> "
\' -> '' (inside strings)

(在SQL字符串中,除'之外的每个字符都按字面解释。)

例如,这个命令:

INSERT INTO MyTable VALUES('nomnomnom\r\n nomnomnom');

将转换为:

INSERT INTO MyTable VALUES('nomnomnom
 nomnomnom');

或者,您可以使用SQL函数插入控制字符:

INSERT INTO MyTable VALUES('nomnomnom' || char(13) || char(10) || ' nomnomnom');