列顺序不一致怎么映射要点
- LOAD DATA 末尾加 (b,c,a) 表示文件第几列落到表的哪些列
- mysqlimport 用 --columns=b,c,a 达到同样效果,逗号分隔
- 文件里多余的列可以丢掉,只要在映射里不写出来即可
- 表里某些列文件没有提供时,取默认值或允许为空才能成功
- 映射写错不会报错但会错位,导入后用 COUNT 和抽样核对
列顺序不一致怎么映射示例
-- 文件列顺序是 a,b,c,表需要 b,c,a
LOAD DATA LOCAL INFILE '/tmp/data.txt'
INTO TABLE mytbl
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(a, b, c);
-- mysqlimport 等价写法
mysqlimport -u root -p --local --columns=a,b,c mytbl data.txt
避坑提醒:导入后别急着删源文件,先 SELECT 抽样看几行:城市写进年龄、姓名写进城市这种错位,COUNT 看总数是发现不了的,肉眼核对最稳。