我正在尝试将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
我甚至不确定为什么它会找到包含六个数据和两列的四列。有帮助吗? :)
答案 0 :(得分:127)
评论中还说了什么,SQLite认为您的输入为1,25,62,7。我也有问题,在我的情况下,它通过更改"分隔符来解决,&#34 ;进入" .mode csv"。所以你可以试试:
sqlite> create table foo(a, b);
sqlite> .mode csv
sqlite> .import test.csv foo
第一个命令创建表的列名。但是,如果您希望从csv文件继承列名,则可能只是忽略第一行。
答案 1 :(得分:22)
我是这样做的。
输入需要添加数据的数据库的sqlite shell
sqlite> .separator "\t" ---IMPORTANT! should be in double quotes
sqlite> .import afile.csv tablename-to-import-to
答案 2 :(得分:4)
在.import命令之前,键入" .mode csv"
答案 3 :(得分:3)
我有完全相同的问题(在OS X Maverics 10.9.1上使用SQLite3 3.7.13,但我不认为SQLite与原因有关)。我试图导入从MS Excel 2011保存的csv数据,顺便说一句。使用';'
作为列分隔符。我发现Excel中的csv文件仍然使用Mac OS中的换行符9次,将其更改为unix换行符解决了问题。 AFAIR BBEdit有一个命令,以及Sublime Text 2。
答案 4 :(得分:3)
答案 5 :(得分:3)
1 =>创建数据库
command : sqlite3 NYC.db
2 =>设置模式和表名
command : .mode csv tripdata
3 =>将csv文件数据导入sqlite3
command : .import yellow_tripdata_2017-01.csv tripdata
4 =>查找表
command : tables
5 =>查找您的表架构
command : .schema tripdata
6 =>查找表数据
command : select * from tripdata limit 10;
7 =>计算表格数据
command : select count (*) from tripdata;
答案 6 :(得分:1)
执行以下步骤:-
答案 7 :(得分:0)
正如某些网站和其他文章所指定的,它简单地对此一看。 https://www.sqlitetutorial.net/sqlite-import-csv/
我们不需要为csv
文件指定分隔符,因为csv表示以逗号分隔。
sqlite> .separator ,
不需要此行。
sqlite> create table cities(name, population);
sqlite> .mode csv
sqlite> .import c:/sqlite/city_no_header.csv cities
这将完美地工作:)
PS:带有标题的我的city.csv。
name,population
Abilene,115930
Akron,217074
Albany,93994
Albuquerque,448607
Alexandria,128283
Allentown,106632
Amarillo,173627
Anaheim,328014