我正在尝试将单词列表导入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.
任何帮助将不胜感激。
答案 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