MySQL 使用LOAD DATA INFILE将大量数据加载到数据库

示例

考虑以下示例,假设您有一个以';'分隔的CSV加载到数据库中。

1;max;male;manager;12-7-1985
2;jack;male;executive;21-8-1990
.
.
.
1000000;marta;female;accountant;15-6-1992

创建要插入的表。

CREATE TABLE `employee` ( `id` INT NOT NULL ,
                          `name` VARCHAR NOT NULL, 
                          `sex` VARCHAR NOT NULL ,
                          `designation` VARCHAR NOT NULL ,
                          `dob` VARCHAR NOT NULL   );

使用以下查询将值插入该表。

LOAD DATA INFILE 'path of the file/file_name.txt' 
INTO TABLE employee
FIELDS TERMINATED BY ';' //指定分隔值的定界符
LINES TERMINATED BY '\r\n'
(id,name,sex,designation,dob)

考虑日期格式非标准的情况。

1;max;male;manager;17-Jan-1985
2;jack;male;executive;01-Feb-1992
.
.
.
1000000;marta;female;accountant;25-Apr-1993

在这种情况下,您可以dob在插入之前更改列的格式。

LOAD DATA INFILE 'path of the file/file_name.txt' 
INTO TABLE employee
FIELDS TERMINATED BY ';' //指定分隔值的定界符
LINES TERMINATED BY '\r\n'
(id,name,sex,designation,@dob)
SET date = STR_TO_DATE(@date, '%d-%b-%Y');

LOAD DATA INFILE的此示例未指定所有可用功能。

您可以在此处查看有关LOAD DATA INFILE的更多参考。