SQLite的命令行工具sqlite3支持简单的csv文件导入,不足之处有:
- 不支持字段用双引号括起来
- 不支持转义字符,如果数据本身包含分割符就无法正确导入
- 使用了.mode csv后貌似字段分隔符不能修改为非逗号的字符
针对以上限制,如果数据本身有逗号,可以用竖线作为分隔符来格式化数据文件。比如:
1|QAD Enterprise Application|Base|0|QAD2|Q-Xtend Inbound|QXI|1|QAD3|Q-Xtend Outbound|QXO|1|QAD4|Serialization, attributes and quality control|SAQ|1|QAD5|Distrubution Center|DC|1|QAD6|Label Printing Services|LPS|1|QAD7|Customization|Cust|1|8|Surper Merge|ECO|1|
?该数据文件有5个字段,第4行第2个字段中包含逗号,因此用竖线可保证该数据可以正确导入。导入该数据的sqlite脚本如下:
.separator '|'.import "product.csv" product
?如果要该文件导入到MySQL中,那么对应脚本是:
load data local infile "product.csv" into table product fields terminated by '|';
?
?