推荐给好友 上一篇 | 下一篇

LOAD DATA INFILE句法

基本语法:BSD爱好者乐园,l_ [*eB"D

load data [low_priority] [local] infile 'file_name txt' [replace | ignore]BSD爱好者乐园/rq~7c0n p3v'm$d6u[5?
into table tbl_nameBSD爱好者乐园 K.Vwa `2b9D LP*]
[fields
N5|_*]}vYmp[terminated by't']
4P#t ]"}2[[OPTIONALLY] enclosed by '']BSD爱好者乐园 l*h2i#~r(Rmf
[escaped by'\' ]]BSD爱好者乐园I?\0GWx;u
[lines terminated by'n']BSD爱好者乐园If U)HRU.u}&h3w
[ignore number lines]
5} \T!u nN`[(col_name,  )]BSD爱好者乐园"Z9MlNG-Za!qW
BSD爱好者乐园)_/?u#j:i
load data infile语句从一个文本文件中以很高的速度读入一个表中。使用这个命令之前,mysqld进程(服务)必须已经在运行。为了安全原因,当读取位于服务器上的文本文件时,文件必须处于数据库目录或可被所有人读取。另外,为了对服务器上文件使用load data infile,在服务器主机上你必须有file的权限。BSD爱好者乐园/l+A:x6zi/g&o*c|

1 如果你指定关键词low_priority那么MySQL将会等到没有其他人读这个表的时候,才把插入数据。可以使用如下的命令:
)l BI _+w4Y#dz
load data low_priority infile "/home/mark/data sql" into table Orders;

v Z |k9L:L

 BSD爱好者乐园 p%d \'AA `

2 如果指定local关键词,则表明从客户主机读文件。如果local没指定,文件必须位于服务器上。

#nj-y3G"~/I"R6]:?

 

L'kK)X*X7dJ j

3 replaceignore关键词控制对现有的唯一键记录的重复的处理。如果你指定replace,新行将代替有相同的唯一键值的现有行。如果你指定ignore,跳过有唯一键的现有行的重复行的输入。如果你不指定任何一个选项,当找到重复键时,出现一个错误,并且文本文件的余下部分被忽略。例如:BSD爱好者乐园Rp5]a*]w^A R-{

load data low_priority infile "/home/mark/data sql" replace into table Orders;BSD爱好者乐园%?J"p Y_,UF

 

s*P*VmY&r

4分隔符BSD爱好者乐园Rw+V+A{y6j$e

1fields关键字指定了文件记段的分割格式,如果用到这个关键字,MySQL剖析器希望看到至少有下面的一个选项:BSD爱好者乐园b4b K9q ]/E,y
terminated by分隔符:意思是以什么字符作为分隔符
_"m7\p Xw]enclosed by
字段括起字符BSD爱好者乐园 Z U!yX qdQ6H
escaped by
转义字符
BSD爱好者乐园 j u m(n8G7S;ln-n

terminated by描述字段的分隔符,默认情况下是tab字符(\t
djVDR*uenclosed by
描述的是字段的括起字符。

$a-B-B%I6J5u`3DHescaped by
描述的转义字符。默认的是反斜杠(backslash\ 
BSD爱好者乐园^p'z ]X*}2w o#}5B

例如:load data infile "/home/mark/Orders txt" replace into table Orders fields terminated by',' enclosed by '"';BSD爱好者乐园+~kV"R"z*v

2lines关键字指定了每条记录的分隔符默认为'\n'即为换行符

dn7]k+QL W:\t

如果两个字段都指定了那fields必须在lines之前。如果不指定fields关键字缺省值与如果你这样写的相同:fields terminated by'\t' enclosed by ’ '' ‘ escaped by'\\'

4o`'IrN j1?0i_8Q

如果你不指定一个lines子句,缺省值与如果你这样写的相同:lines terminated by'\n'BSD爱好者乐园 T3h)F%B^;z [B

例如:load data infile "/jiaoben/load.txt" replace into table test fields terminated by ',' lines terminated by '/n';

D7LT P%n(D;?S

5 load data infile可以按指定的列把文件导入到数据库中。 当我们要把数据的一部分内容导入的时候,,需要加入一些栏目(列/字段/field)到MySQL数据库中,以适应一些额外的需要。比方说,我们要从Access数据库升级到MySQL数据库的时候

(T"i [+a&e/^ \ u Z

下面的例子显示了如何向指定的栏目(field)中导入数据:
'm Rckn,eAn1k
load data infile "/home/Order txt" into table Orders(Order_Number, Order_Date, Customer_ID);BSD爱好者乐园4jw2tl}(K

6 当在服务器主机上寻找文件时,服务器使用下列规则:BSD爱好者乐园{ k.HXFE]
1)如果给出一个绝对路径名,服务器使用该路径名。
BSD爱好者乐园!e;j/z"RX5A7u
2)如果给出一个有一个或多个前置部件的相对路径名,服务器相对服务器的数据目录搜索文件。
 BSD爱好者乐园#DEx\T&Pu9K-W.b
3)如果给出一个没有前置部件的一个文件名,服务器在当前数据库的数据库目录寻找文件。
)sj;O0rEa'a'RW
例如:/myfile txt”给出的文件是从服务器的数据目录读取,而作为“myfile txt”给出的一个文件是从当前数据库的数据库目录下读取。

#hle a iM6ZTS pd7z

 BSD爱好者乐园lB)fmK[Q*?

 BSD爱好者乐园3HY4A}2d#kg;k"k

注意:字段中的空值用\N表示

c"_"w4K"wP

[版权声明]BSD爱好者乐园站内文章,如来源不是互联网,则均系原创或翻译之作,可随意转载,或以此为基础进行演译,但务必以链接形式注明原始出处和作者信息,否则属于侵权行为。另对本站转载他处文章,俱有说明,如有侵权请联系本人,本人将会在第一时间删除侵权文章。
TAG: data Data Load load LOAD DATA INFILE
 

评分:0

我来说两句

seccode