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,...]]
- LOW_PRIORITY:如果你指定关键词low_priority,那么MySQL将会等到没有其他人读这个表的时候,才把插入数据。
- LOCAL:如果指定local关键词,则表明从客户主机读文件。如果local没指定,文件必须位于服务器上。
- CONCURRENT:则当LOAD DATA 正在执行时,其它线程会从表中重新获取数据。即使没有其它线程在同时使用本表格,使用本选项也会略微影响LOAD DATA 的性能。
- REPLACE 和IGNORE :关键字处理那些与已存在的主键值重复的输入记录。如果指定了REPLACE,输入行将会代替已存在的行(也就是说,主索引值相同的行将作为存在的行)。参考REPLACE 语法 。如果指定了IGNORE,与已存在行主键值重复的输入行将被跳过。如果不指定二者中的任一个,则操作行为将依赖是否指定了LOCAL 关键字。没有指定LOCAL,则如果发现有重复的键值,将产生一个错误,并忽略文本文件的其余部分。
- FIELDS:指定了文件记段的分割格式,如果用到这个关键字。
- terminated by:意思是以什么字符作为分隔符,默认情况下是tab字符(\t),例如:TERMINATED BY ‘\t’
- enclosed by:字段结束符号。
- Fields Terminated By ‘,’ Enclosed By ‘”’ Escaped By ‘”’表示每个字段用逗号分开,内容包含在双引号内
- Lines Terminated By ‘\r\n’;表示每条数据用换行符分开
- IGNORE number LINES:这个选项可以用来忽略文件开头部分的行。例如,可以用IGNORE 1 LINES 来跳过含有列名的的头一行: