bitsCN.com
load data infile '/tmp/temp.txt' into table table_name fields terminated by ',' lines terminated by '/n' (col1,col2,...)
将temp.txt中的数据高速导入到table_name中,并且规定插入的列(col1,col2,...)temp.txt中的文件格式为:
1,datacenter,sina2,bigdata,chinabyte3,test,sina
LOAD DATA INFILE 是SELECT ... INTO OUTFILE 的反操作。使用SELECT ... INTO OUTFILE 将数据从一个数据库写到一个文件中。使用LOAD DATA INFILE 读取文件到数据库中。两个命令的FIELDS 和LINES 子句的语法是一样的。两个子句都是可选的,但是如果两个同时被指定,FIELDS 子句必须出现在LINES 子句之前。
如果用户没有指定一个FIELDS 子句,缺省时如同使用下列语句:FIELDS TERMINATED BY '/t' ENCLOSED BY '' ESCAPED BY '//'
如果用户没有指定一个LINES 子句,缺省时如同使用下列语句:LINES TERMINATED BY '/n' STARTING BY ''。换句话说,当读取输入时,缺省的LOAD DATA INFILE 表现如下:? 在换行符处寻找行的边界。? 不遗漏任何行前缀。? 在制表符处将行分离成字段。? 不认为字段由任何引号字符封装。? 将有 “/” 开头的定位符、换行符或`/' 解释为字段值的一个文字字符。
相反的,当写入输出时,缺省值导致SELECT ... INTO OUTFILE 表现如下:? 在字段值间加上制表符。? 不用任何引号字符封装字段。? 使用 “/” 转义出现在字段值中的定位符、换行符或`/' 字符实例。? 在行的结尾处加上换行符。
IGNORE number LINES 这个选项可以用来忽略文件开头部分的行。例如,可以用IGNORE 1 LINES 来跳过含有列名的的头一行:sqlcli> LOAD DATA INFILE '/tmp/test.txt'-> INTO TABLE test IGNORE 1 LINES。
如果所有的将要读取的行都有用户希望忽略的前缀,可以使用LINES STARTING BY 'prefix_string' 来跳过此前缀(和在它前面的任何内容)。如果一个行没有此前缀,则整个行都被跳过。注意,prefix_string 可能在行的中间!例如:
sql-> LOAD DATA INFILE '/tmp/test.txt' -> INTO TABLE test LINES STARTING BY "xxx";
用它读取包含有下面内容的文件:
xxx"Row",1something xxx"Row",2
则可以得到数据(“row”,1)和(“row”,2)。
bitsCN.com
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn