如何使用SQLite3导入tsv文件
我有一个tsv(制表符分隔文件),我想用sqlite3导入。有人知道一个明确的方法来做到这一点吗?如何使用SQLite3导入tsv文件
我已经安装了sqlite3,但尚未创建任何数据库或表。
我试着命令
.import /path/filename.tsv my_new_table
,但它给我的错误:没有这样的表:my_new_table。
但是,从我读的它应该自动创建表,如果它不存在。这是否意味着我需要首先创建和使用数据库,或者是否有另一个将.tsv文件导入到sqlite的技巧?
您应该创建表格,设置分隔符并导入数据sqlite wiki。
示例TSV:
data.tsv
(标签作为分隔符):
Bob 30 1000
Wendy 20 900
1)创建一个表,并设置TAB作为分隔符:
sqlite> create table people (name text, param1 int, param2 int);
sqlite> .separator "\t"
2)导入数据:
sqlite> .import data.tsv people
,其结果是:
sqlite> select * from people;
Bob 30 1000
Wendy 20 900
其实是有导入制表符分隔的文件专用模式:
sqlite> .mode tabs
sqlite> .import data.tsv people
此外,如果您在您的TSV文件标题行,你可以让SQLite的自动创建桌子。 只需在导入过程中使用未使用的表名并将tsv文件更改为:
name param1 param2
Bob 30 1000
Wendy 20 900
这真的是最好的答案。谢谢@adius – 2016-02-21 21:37:56
不要在导入语句的末尾放一个分号,就像我做的那样:) – 2016-08-22 22:02:23
谢谢!简单而高效。 – bsuire 2014-09-28 22:04:08
2016年的感谢。 – Anekdotin 2016-10-15 18:33:48
请注意,使用'.separator“\ t”'意味着sqlite仍然会使用csv样式来解释引号,这可能不是您想要的。更好的选择是使用adius答案中描述的“tabs”模式。 – Miles 2017-06-19 08:28:18