前面我们介绍过如何用select…into outfile语句将SQL查询结果导出到文件:
MySQL 将查询结果导出到文件(select … into Statement)
MySQL同时也提供互补的功能,可以使用load data infile语句将文件中的数据加载到数据库中,这个文件可以是MySQL导出的文件或其他来源。本文将介绍load data infile语句的用法及在使用过程中常见问题的解决方式。
文章目录
一、load data语句简介
MySQL的load data infile语句可以从文本文件中读取数据,并且加载到数据库的表中。和select…into outfile只能导文件到本地数据库服务器不同,load data语句即可以从数据库服务器本地读取文件,也可以通过远程客户端(使用local关键字)读取,即可以远程将文件加载到数据库中。
MySQL还提供了一个mysqlimport命令行工具也可以将数据从文件加载到数据库中,其原理也是通过load data infile语句完成的。
二、用法示例
默认情况下,load data infile语句是从数据库服务器加载数据的,为了安全起见,一般MySQL都会配置secure_file_priv参数,来指定可以读写文件的目录,将要导入的文件放在此参数指定的目录下。
show variables like 'secure_file_priv';
我们先通过导出数据的方式创建一个文件,这里在示例数据库employees下新建一张测试表并插入几条数据:
create table person(
id int not null auto_increment primary key,
name varchar(32),
salary decimal(10,2),
remark varchar(128));
insert into person values(null, 'Vincent', 1000, 'AAA');
insert into person values(null, 'Victor', 2000, 'BBB');
insert into person values(null, 'Grace', 3000, 'CCC');