有人请帮帮我,因为我的头要爆炸了。
我正在尝试在 sqlite3 中导入数据。我有 promos.sql
和 promos.csv
文件。我尝试在 sqlite shell 中运行它:
.read promos.sql
或者在 Unix 提示符下执行此操作:
sqlite3 development.sqlite3<promos.sqlite3
每次我收到错误
Error: near line 1: near ",": syntax error Error: near line 18: near ",": syntax error e.t.c.
In file are following rows:
INSERT INTO promos (name, promo_type, category, phone, email, message, created_at) VALUES
('John', 1, 3, '+111 11 111 111 11', 'some@email.com', 'Some message', '2009-09-24 12:17:17'),etc
因此,它会提示列枚举的每一行中的错误。
如果我尝试
.import promos.csv promos
它说:
Error: promos.csv line 1: expected 9 columns of data but found 1
但文件中有 9 列如预期:
"13","John","1","3","+111 11 111 111 11","some@email.com","Some message","2009-09-24 15:17:17", "2009-09-24 15:17:17"
为什么不工作?
最佳答案
对于sql问题:您的INSERT语句末尾是否有逗号而不是像您应该有的分号?请发布您尝试运行的 sql 文件的几行,并发布 promos
的 CREATE TABLE 语句。
对于csv问题:sqlite使用|作为默认分隔符,因此您必须将其设置为使用逗号。此外,sqlite 导入无法识别带引号的列,因此如果数据中包含逗号,最好使用不同的方法来导入数据。请参阅this article了解详情。
关于sql - 将数据导入到sqlite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10767348/