$ sqlite3 test.sql
SQLite version 3.6.12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table test (id integer, author_id integer, title varchar(128), name text);
sqlite> .separator ";"
sqlite> .import sqlite.csv test
sqlite.csv line 3: expected 4 columns of data but found 1
sqlite> .separator ';'
sqlite> .import sqlite.csv test
sqlite.csv line 3: expected 4 columns of data but found 1
sqlite>
我正在尝试导入csv表;作为sqlite的分隔符,但它无法找到4列。我从sql导出到csv并选中'在第一行中放置字段名'。我可以在这里遗漏一些东西吗?
csv的前5行
id;"author_id";"title";"poem"
1;"92";"A Letter From Italy";"Salve magna parens frugum Saturnia tellus
Magna virm! tibi res antiqu laudis et artis
Aggredior sanctos ausus recludere fontes.
Virg. Geor. 2.
答案 0 :(得分:5)
由于您的分隔符只是一个字符,请尝试使用分隔符命令,而不使用分号周围的引号。所以:
sqlite> .separator ;
sqlite> .import sqlite.csv test
答案 1 :(得分:5)
您无法导入具有主键的表,您必须先将其导入临时表。
查看此SO question
的答案答案 2 :(得分:1)
也许你的一个字符串中的换行没有被正确转义?所以它认为第二行在“tellus”之后结束,然后尝试解析从Magna开始作为第3行的文本,并且没有找到分号分隔符。您是否可以发布在Textpad中打开时CSV的外观截图?