通过忽略变量CSV列批量导入CSV到MySQL

时间:2015-04-16 12:15:32

标签: mysql bash csv

我正在尝试通过MySQL数据库中多个CSV文件的bash shell(Windows)实现批量导入。我遇到的问题是我的CSV文件(500+)有两个不同的列数。

CSV类型1

No,Latitude,Longitude,Name,Altitude,Description,Symbol,Filename
1,-26.976823,21.836022,"1608",912.7,"1608","Flag","W80716pmNATV"

CSV类型2

No,Latitude,Longitude,Name,Altitude,Symbol,Filename
1,-26.977080,21.833260,"0649SB",902.0,"Flag","W81018amDH.mps"

我该如何操纵:

LOAD DATA INFILE ' VH110131pmBES.mps.csv '
INTO TABLE `gpsdata`.`import`
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES (@dummy, `Latitude`, `Longitude`, `Name`, `Altitude`, @dummy, `Filename`)'

将两个文件合并到一个bash代码中? 我在开始自动增量时确实有一个唯一的ID字段。

1 个答案:

答案 0 :(得分:0)

  1. 始终使用更宽的表格(类型1)
  2. LOAD DATA...
  3. 之后删除...IGNORE 1 LINES命令中的列名称
  4. 运行Imports
  5. 检查mysql中所有新表的空列Filename - >这些是type2格式表
  6. 仅适用于type2表格:将Symbol的内容移至Filename,将Description的内容移至Symbol,删除列Description