您好,欢迎访问一九零五行业门户网

mysql的loaddatainfile的用法_MySQL

load data infile语句从一个文本文件中以很高的速度读入一个表中。
1、基本语法
load data [low_priority | concurrent] [local] infile 'file_name.txt' [replace | ignore] into table tbl_name [fields [terminated by 'string'] [[optionally] enclosed by 'char'] [escaped by 'char' ] ] [lines [starting by 'string'] [terminated by 'string'] ] [ignore number lines] [(col_name_or_user_var,...)] [set col_name = expr,...]]
2、参数说明ow_priority:如果你指定关键词low_priority,那么mysql将会等到没有其他人读这个表的时候,才把插入数据。案例:
load data low_priority infile /home/mark/data sql into table orders;
local:如果指定local关键词,则表明从客户主机读文件。如果local没指定,文件必须位于服务器上。concurrent:则当load data 正在执行时,其它线程会从表中重新获取数据。即使没有其它线程在同时使用本表格,使用本选项也会略微影响load data 的性能。
eplace 和ignore :关键字处理那些与已存在的主键值重复的输入记录。如果指定了replace,输入行将会代替已存在的行(也就是说,主索引值相同的行将作为存在的行)。参考replace 语法 。如果指定了ignore,与已存在行主键值重复的输入行将被跳过。如果不指定二者中的任一个,则操作行为将依赖是否指定了local 关键字。没有指定local,则如果发现有重复的键值,将产生一个错误,并忽略文本文件的其余部分。
fields:指定了文件记段的分割格式,如果用到这个关键字。
terminated by:意思是以什么字符作为分隔符,默认情况下是tab字符(\t),例如:terminated by '\t'
enclosed by:字段结束符号。
escaped by:字段开始符号,默认的是反斜杠 (backslash:\ ),例如:escaped by '\\'。
load data infile 'c:/data.txt' into table `tabletest` fields terminated by ',' enclosed by '' escaped by '' lines terminated by '\r\n';
fields terminated by ',' enclosed by '' escaped by ''
表示每个字段用逗号分开,内容包含在双引号内lines terminated by '\r\n';
表示每条数据用换行符分开
lines terminated:指定了每条记录的分隔符,默认为'\n'为换行符。
ignore number lines:这个选项可以用来忽略文件开头部分的行。例如,可以用ignore 1 lines 来跳过含有列名的的头一行:
load data infile '/tmp/test.txt' into table test ignore 1 lines;
col_name_or_user_var:表示数据表字段:
set col_name = expr:提供不是来源于输入文件的值。
load data infile 'file.txt' into table t1 (column1, column2) set column3 = current_timestamp;
3、其他说明
如果希望装载操作中忽略外键约束,可以在执行load data 之前执行set foreign_key_checks=0 语句。
如果用户在一个空的 ceshi 表上使用load data infile,所有非唯一索引会以分批方式被创建(就像repair)。当有许多索引时,这通常可以使load data infile 更快一些。
其它类似信息

推荐信息