【问题标题】:importing csv into sqlite with sqlite3 gives me one row使用 sqlite3 将 csv 导入 sqlite 给我一行
【发布时间】:2012-08-21 20:58:18
【问题描述】:

所以我无法将 csv 导入我的 sqlite 表。我的文件看起来不错:我在.separator 中指定了,\n(我的文件的结构)。但是当我导入时,似乎只有一行,其中包含来自 csv 的所有内容。我希望它导入文件并让 sqlite3 将每个值放在自己的行中。我做错了什么?

表格

$ sqlite3 test
SQLite version 3.6.12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table test (name text);
sqlite> .separator ,\n
sqlite> .import sqlite.csv test
sqlite> select * from test;
Biohazard,
Bird,
Black-Star,
Black-Truck,
Blog,
Boardwalk,
...
sqlite> select * from test where name="Bird";
sqlite> //notice here that nothing comes up for 'Bird'
//But what I want it to do is to return 'Bird' like so:
sqlite> select * from test where name="Bird";
Bird
sqlite>

【问题讨论】:

    标签: android sql database sqlite csv


    【解决方案1】:

    将您的分隔符设置为 ,...\n 使其查找每个字段分隔符后跟一个换行符的逗号。

    .separator ,
    

    【讨论】:

    • 我试过了,然后报错:line 1: expected 1 columns of data but found 2
    • 啊,那是因为当您最初导入时,您的表必须具有与 .csv 文件相同的列数。我有时会导入到一个临时表中,然后将我想要的列复制到一个最终表中。
    • 知道了!所以我所做的是制作一个包含两列的表格并将 csv 导入其中。结果我还需要在最后一个值处添加一个逗号,这可能是给我带来了所有麻烦。然后我创建了一个新表并导入了包含我需要的所有数据的第一列。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2012-08-05
    • 2013-02-03
    • 2014-06-04
    • 1970-01-01
    • 2012-03-19
    • 2020-08-23
    • 2015-09-23
    • 2012-09-14
    相关资源
    最近更新 更多