sql - 将数据导入到sqlite

标签 sql csv import sqlite

有人请帮帮我,因为我的头要爆炸了。

我正在尝试在 sqlite3 中导入数据。我有 promos.sqlpromos.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/

相关文章:

sql - 使用新列中的前一行值计算每日增长 - SQL Server

java - 无法使用 Java/JSP 将数据插入 Apache Derby 数据库

php - 无法弄清楚为什么我不断收到 Mysql 错误

java - 是否有一个 Java 库可以让我轻松地从字符串中保存的 CSV 文本中提取数据

Python 如何格式化 CSV 文件写入

python - from import 语法丢弃以 _(下划线)开头的属性

mysql - 使用 Magmi 导入 Magento 产品 - 访问数据库被拒绝

sql - sql中算术溢出错误转换浮点错误

mysql - CSV 文件从 Excel 到 MySQL 的字符编码

Python 模块导入因未知原因失败