导入命令不包括文本文件中的单词列表

时间:2019-04-15 02:27:25

标签: bash sqlite

我正在尝试将单词列表导入sqlite3中的表,但是,我遇到的错误是它没有将单词插入表中。 这是我收到的错误:0.out:1:预期有2列,但发现1-用NULL填充其余部分

我用create table中的变量尝试了不同的引用;同样的结果。还尝试使用其他插入(例如LOAD DATA INFILE)仅接收到错误:

Error: incomplete SQL: LOAD DATA INFILE 0.out INTO TABLE data0(word)

============================

  

sqlite3 $ database.db << EOF

     

创建表$ table(id整数,单词TEXT,主键(id));

     

.import $ text $ table

     

.exit

     

EOF

============================

文本文件每行只有一个单词

all

all-inspiring

并且假设它可以正确运行时,将显示如下输出:

CREATE TABLE data0 (id integer,word text, primary key(id));

INSERT INTO data0 VALUES(1,'all');

INSERT INTO data0 VALUES(2,'all-inspiring');

etc.

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

此方法可能有效:

err

以上面的脚本为例。

验证

#!/bin/bash 
# Make this a script so that side-effects are effectively wrapped
# without giving an end-user any hassle
file="tempfile"
nl -s, -w1 filename >> "$file"
# Above step makes a temporary CSV file for import adding line numbers in the beginning
database="yourdbname"
table="yourtablename"
sqlite3 "$database" <<EOF
CREATE TABLE ${table}(id INTEGER PRIMARY KEY,word TEXT);
.mode csv
.import $file $table
.exit
EOF
rm "$file" #Delete the temporary file