题记:

因业务需要,需将一些用户记录进行汇总并上传到指定平台。需要先将指定时间的所有用户记录进行汇总。涉及到了大数据量的数据导入导出。

使用 iINTO OUTFILE 和 LOAD DATA LOCAL INFILE 实现了改功能,记录一下

步骤:

  • 1 将源数据导出(select * from test_table ORDER BY createtime into outfile 'E:\temp\test.txt';)
  • 2 将源数据筛选后导入(LOAD DATA LOCAL INFILE 'E:\temp\test.txt' INTO TABLE test_table_sort (@c1,c2,c3,...,c14,c15);)

注意:

  • 1 需要先开启文本导出权限
    • 1 show global variables like '%secure%'; //查询设置
    • 2 将 secure_file_priv 值赋值为 ""
  • 2 导入数据报错 (The used command is not allowed with this MySQL version)原因除了是mysql版本过低外,最有可能是因为设置禁止远程导入文件,所以navicat执行导入报错。可以在本机上cmd连接mysql后再执行。解决!
  • 3 导入时可用 @变量名 指定某列值不导入;