一般情况下,如果只有一条或者几条数据插入表中,那么我们会优先考虑使用insert into语句,但是如果是数十条甚至上千条,使用insert into语句会让后你觉得很烦人而且比较容易出错,Mysql提供了从外部文件导入数据的语句
load data [local] infile [path] [ignore|replace] into table table_name(col1,col2,...);
[local]可选,不加上表示是从服务器本地中加载文件。
[path]是字符串类型,用''括起来,它既可以是相对路径也可以是绝对路径。
[ignore|replace]表示遇到文件中的数据记录跟已有的表记录发生冲突时的策略,ignore表示忽略文件中的冲突数据,replace表示用文件中的冲突数据覆盖表中的数据。
table_name可以不知道那几个列,而默认是所有列。
一般会选择txt作为数据文件,此时需要注意,如果默认是所有列的话,必须在文件中给出所有列的取值,否则会抛出错误,列与列之间用空格或tab键隔开,行与行之间用回车换行。
创建一个pet表
CREATE TABLE `pet` (
`name` char(30) default NULL,
`owner` char(30) default NULL,
`species` char(10) default NULL,
`sex` enum('f','m') NOT NULL,
`birth` date default NULL,
`death` date default NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
创建一个PET.txt文件
Fluffy Harold cat f 1993-02-04
Slim Benny snake m 1996-04-29
SQL语句
load data infile 'c:/PET.txt' replace into table pet(name,owner,species,sex,birth);