我试图导入CSV文件到一个SQLite表中。
例如CSV:
1,2
5,6
2,7
示例命令:
sqlite> create table foo(a, b);
sqlite> separator ,
sqlite> .import test.csv foo
Error: test.csv line 1: expected 2 columns of data but found 4
我甚至不知道为什么它会发现四列数据的六件和两列。 任何帮助吗? :)
我试图导入CSV文件到一个SQLite表中。
例如CSV:
1,2
5,6
2,7
示例命令:
sqlite> create table foo(a, b);
sqlite> separator ,
sqlite> .import test.csv foo
Error: test.csv line 1: expected 2 columns of data but found 4
我甚至不知道为什么它会发现四列数据的六件和两列。 任何帮助吗? :)
什么也在评论说来,SQLite的看到你的输入为1,25,62,7,我也有一个问题,在我的情况下,通过改变“分隔符”,到“.mode CSV”解决。 所以,你可以尝试:
sqlite> create table foo(a, b);
sqlite> .mode csv
sqlite> .import test.csv foo
第一个命令创建表的列名。 但是,如果你想从CSV文件继承了列名,你可能只是忽略了第一道防线。
以下是我做到了。
进入到需要添加数据DB的SQLite的外壳
sqlite> .separator "\t" ---IMPORTANT! should be in double quotes sqlite> .import afile.csv tablename-to-import-to
我从合并以前的答案在这里与我自己的经验信息。 最简单的是直接添加逗号分隔的表头到您的CSV文件,然后一个新行,然后你所有的CSV数据。
如果你是永远不会再这样做sqlite的东西(像我一样),这可能会为你节省网络搜索或两个:
在SQLite的shell中输入:
$ sqlite3 yourfile.sqlite
sqlite> .mode csv
sqlite> .import test.csv yourtable
sqlite> .exit
如果你还没有sqlite的Mac上安装,运行
$ brew install sqlite3
你可能需要做如何安装自制一个网络搜索。
.IMPORT命令之前,键入 “.mode CSV”
我有完全相同的问题(在OS X 10.9.1 Maverics用的SQLite3 3.7.13,但我不认为SQLite是关系到原因)。 我试图从导入的MS Excel 2011,这BTW保存CSV数据。 使用';'
作为列分隔符。 我发现,从Excel csv文件仍然使用换行符从Mac OS 9次,将其更改为UNIX换行符解决了这个问题。 AFAIR的BBEdit有这样的命令,以及崇高的文本2。
TERMSQL
随着termsql你可以做一个行:
termsql -i mycsvfile.CSV -d ',' -c 'a,b' -t 'foo' -o mynewdatabase.db