我正在 Windows 上导入 csv 文件:
3K;Cartridge/CHRA/Core Assy;B9DC3A;96,11;1057,21;1371,48;36,21;1602,78;54357100500;328;;;54357100500;;
3K;Cartridge/CHRA/Core Assy;D6EC42;483,95;5323,45;5603,62;10,53;6548,67;13877100500;328;;;13877100500;;
3K;Cartridge/CHRA/Core Assy;D79352;132,45;1456,95;1831,50;31,99;2140,39;53037100501;328;;;53037100501;;
3K;Cartridge/CHRA/Core Assy;D79353;119,08;1309,88;1683,33;34,94;1967,23;53037100502;328;;;53037100502;;
3K;Cartridge/CHRA/Core Assy;D79354;164,09;1804,99;2299,99;33,80;2687,88;53037100503;328;;;53037100503;;
在此数据库中:
CREATE DATABASE db
DEFAULT CHARACTER SET 'utf8'
DEFAULT COLLATE 'utf8_general_ci';
CREATE TABLE IF NOT EXISTS oo (
id INT NOT NULL AUTO_INCREMENT,
iid VARCHAR(255),
prod VARCHAR(255),
grp VARCHAR(255),
al VARCHAR(255),
ap VARCHAR(255),
mp VARCHAR(255),
ic VARCHAR(255),
td VARCHAR(255),
td_p INT,
add_inf TEXT,
INDEX( iid ),
PRIMARY KEY( id )
);
使用此命令:
LOAD DATA LOCAL INFILE 'd:\\inn.csv'
INTO TABLE `oo`
CHARACTER SET 'utf8'
FIELDS TERMINATED BY ';'
OPTIONALLY ENCLOSED BY '\"'
ESCAPED BY '\"'
LINES TERMINATED BY '\r\n'
( prod, grp, ic, @dummy, @dummy, @dummy, @dummy, @dummy, @td, td_p, @dummy, @dummy, al, ap, mp, @add1, @add2 )
SET
td = @td,
iid = concat( @td, '--', @prod ),
add_inf = concat( @add1, @add2 );
第一行第一列旁边的一切都很完美,这在开头产生了额外的空间。我不知道它从哪里来。我尝试过设置
prod = REPLACE( @prod, ' ', ''),
,但没有帮助。 csv 文件第一行第一列没有空格,并且采用 utf-8 带 BOM 编码。
这就是输出的样子: