我正在尝试将csv文件导入SQLite表.
示例csv:
1,2
5,6
2,7
Run Code Online (Sandbox Code Playgroud)
示例命令:
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
Run Code Online (Sandbox Code Playgroud)
我甚至不确定为什么它会找到包含六个数据和两列的四列.有帮助吗?:)
Num*_*uis 132
在评论中也说了什么,SQLite将您的输入视为1,25,62,7.我也遇到了问题,在我的情况下,它通过将"separator"更改为".mode csv"来解决.所以你可以尝试:
sqlite> create table foo(a, b);
sqlite> .mode csv
sqlite> .import test.csv foo
Run Code Online (Sandbox Code Playgroud)
gya*_*guy 24
这就是我做到的.
输入需要添加数据的db的sqlite shell
sqlite> .separator "\t" ---IMPORTANT! should be in double quotes
sqlite> .import afile.csv tablename-to-import-to
luk*_*s_o 17
我根据自己的经验将以前的答案中的信息合并.最简单的方法是将逗号分隔的表头直接添加到csv文件,然后是新行,然后是所有csv数据.
如果你再也没有做过sqlite的东西(比如我),这可能会为你节省一两个网页搜索:
在Sqlite shell中输入:
$ sqlite3 yourfile.sqlite
sqlite> .mode csv
sqlite> .import test.csv yourtable
sqlite> .exit
Run Code Online (Sandbox Code Playgroud)
如果您的Mac上没有安装Sqlite,请运行
$ brew install sqlite3
Run Code Online (Sandbox Code Playgroud)
您可能需要进行一次网络搜索,了解如何安装Homebrew.
小智 12
如何将csv文件导入sqlite3
创建数据库
sqlite3 NYC.db
Run Code Online (Sandbox Code Playgroud)设置模式和表名
.mode csv tripdata
Run Code Online (Sandbox Code Playgroud)将csv文件数据导入sqlite3
.import yellow_tripdata_2017-01.csv tripdata
Run Code Online (Sandbox Code Playgroud)查找表
.tables
Run Code Online (Sandbox Code Playgroud)找到您的表架构
.schema tripdata
Run Code Online (Sandbox Code Playgroud)查找表数据
select * from tripdata limit 10;
Run Code Online (Sandbox Code Playgroud)计算表中的行数
select count (*) from tripdata;
Run Code Online (Sandbox Code Playgroud)小智 5
在.import命令之前,键入“ .mode csv”
小智 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 都有一个用于此目的的命令。
| 归档时间: |
|
| 查看次数: |
153290 次 |
| 最近记录: |