如何将文件导入sqlite?

时间:2009-01-18 18:08:09

标签: iphone macos sqlite import terminal

在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."

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

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

修改

这正是我发布的语法,减去了一个标签,因为我使用的是逗号。我的帖子中缺少的换行符并没有表现得那么明显。无论如何,这会给出不匹配错误。

3 个答案:

答案 0 :(得分:9)

我正在寻找同样的问题。看起来我在问题的第一部分找到了answer - 关于将文件导入带有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),但是当我尝试它时似乎没有用。

答案 1 :(得分: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给您确切的行,但它应该是显而易见的。)<登记/>    使用新文件,我可以对数据库进行恢复

答案 2 :(得分:0)

如果有人仍然遇到此问题,您可以下载SQLLite管理器。

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

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