sqlite错误通过命令行导入csv

mer*_*ill 9 sql csv sqlite import

$ 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> 
Run Code Online (Sandbox Code Playgroud)

我正在尝试导入csv表; 作为sqlite的分隔符,但它无法找到4列.我从sql导出到csv并选中'在第一行中放置字段名'.我可以在这里遗漏一些东西吗?

前5行csv

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.  
Run Code Online (Sandbox Code Playgroud)

Mik*_*iro 6

由于您的分隔符只是一个字符,请尝试使用分隔符命令,而不使用分号周围的引号.所以:

sqlite> .separator ;
sqlite> .import sqlite.csv test
Run Code Online (Sandbox Code Playgroud)


byt*_*der 5

您无法导入具有主键的表,您必须先将其导入临时表.

请参阅此SO 问题的答案