4

在 Mac 上,我有一个包含两列的 txt 文件,其中一列是 sqlite 表中的自动增量:

, "mytext1"
, "mytext2"
, "mytext3"

当我尝试导入此文件时,出现数据类型不匹配错误:

.separator ","
.import mytextfile.txt mytable

应该如何构造 txt 文件以使其使用自动增量?

另外,如何输入有换行符的文本?例如:

"this is a description of the code below.
The text might have some line breaks and indents.  Here's
the related code sample:

foreach (int i = 0; i < 5; i++){

  //do some stuff here

}

this is a little more follow up text."

我需要将上述内容插入一行。我需要对格式化做些什么特别的事情吗?

对于一个特定的表,我希望我的每一行都作为一个文件并以这种方式导入它们。我猜这是创建某种运行多个导入的批处理文件的问题。

编辑

这正是我发布的语法,因为我使用的是逗号,所以减去了一个制表符。我的帖子中缺少的换行符并没有让它变得很明显。无论如何,这会导致不匹配错误。

4

3 回答 3

9

我正在寻找同样的问题。看起来我已经在您问题的第一部分找到了答案——关于将文件导入带有 ID 字段的表中。

所以是的,创建一个没有 ID 的临时表,将文件导入其中,然后执行 insert..select 将其数据复制到目标表中。(从 mytextfile.txt 中删除前导逗号)。

-- assuming your table is called Strings and
-- was created like this:
-- create table Strings( ID integer primary key, Code text )

create table StringsImport( Code text );
.import mytextfile.txt StringsImport
insert into Strings ( Code ) select * from StringsImport;
drop table StringsImport;

不知道如何处理换行符。我读过一些提到在 CSV 模式下导入可以解决问题(.mode csv),但是当我尝试时它似乎不起作用。

于 2009-01-24T22:11:55.433 回答
0

我正在将包含带有各种标点符号的长文本字段(它们实际上是关于编码的文章)的数据移动到 SQLite 中,并且我一直在尝试各种文本导入。

我在 SQLite 中创建了一个带有表的数据库:

CREATE TABLE test (id PRIMARY KEY AUTOINCREMENT, textfield TEXT);

然后使用 .dump 进行备份。

然后,我在生成的 .dump 文件中手动添加“CREATE TABLE”行下方的文本,如下所示:

INSERT INTO test textfield VALUES (1,'Is''t it great to have
                     really long text with various punctaution marks and
          newlines');

将任何单引号更改为两个单引号(将 ' 更改为 '')。请注意,需要手动添加索引号(我确信有一个 AWK/SED 命令可以自动添加)。将转储文件中“序列”行中的自动增量编号更改为您添加的最后一个索引编号上方的一个(我面前没有 SQLite 可以为您提供确切的行,但应该很明显)。
使用新文件,我可以对数据库进行还原

于 2010-02-06T19:10:22.257 回答
0

如果有人对此仍有疑问,您可以下载 SQLLite 管理器。

有几个允许从 CSV 文件导入。

这是一个,但谷歌搜索应该会显示一些:http ://sqlitemanager.en.softonic.com/

于 2012-09-04T10:31:57.013 回答