将csv数据导入到mysql

之前用想用 Navicat 将 csv 的数据导入到 MYSQL 时候,发现有行数限制,上个星期改用了 DataGrip 工具来操作数据库,发现可以没有限制的导入数据了(很是 happy)。

但是对于 datetime 类型的数据导入还是会有问题的,需要做点处理。下面就来演示一遍。

  • 将表中的 Datetime 类型改成 varchar 类型。
ALTER TABLE package CHANGE scan_time scan_time VARCHAR(50);
  • 导入数据

  • 修改日期字符串的格式 ‘YYYY-MM-DD hh:mm:ss’
UPDATE package
SET package.scan_time = concat(
    substr(package.scan_time, 7, 4), '-',
    substr(package.scan_time, 4, 2), '-',
    substr(package.scan_time, 1, 2), ' ',
    substr(package.scan_time, 12));
  • 将 varchar 类型修改成 Datetime 类型。
    ALTER TABLE package CHANGE scan_time scan_time DATETIME;
    

另外好像也可以用命令行直接导入 csv 数据,我在 docker 环境里试了下,不顶用~。

LOAD DATA INFILE "/home/paul/clientdata.csv"
INTO TABLE CSVImport
COLUMNS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
Comments
Write a Comment