http://blogold.chinaunix.net/u3/90603/showart_1964109.html

 

1. 数据文件的位置

load data的文件位置:
    如果为绝对路径,则直接访问绝对路径下的文件。
    如果为相对路径(只有文件名),则在默认数据库的数据目录中寻找文件。
    如果为相对路径(包含文件夹),则在数据库数据目录下寻找相应文件夹。

load data local的文件位置:
    如果为绝对路径,则直接访问绝对路径下的文件。
    如果为相对路径,则在当前目录下寻找。


2. local的用法

mysqlimport -L database 'name.txt'
mysql> load data local infile 'name.txt' into table talbe_name


3. 指定文件格式

fields-terminated-by
fields-enclosed-by
fields-escaped-by
lines-terminated-by
可 用转义符,也可用ASCII码
\t = 0x09
\n = 0x0a
\r = 0x0d


4. 不同操作系统的行结束符

Unix : \n
Windows: \r\n


5. 处理重复的值

load data local infile 'name.txt' replace into table table_name
或者使用mysqlimport的--replace选项


6. 跳过文件头几行

load data infile 'name.txt' into table table_name ignore 1 lines;


7. 修改文件数据和列值的对应关系

load data infile 'name.txt' into table table_name (col1,col3,col2);


8. 插入前对数据进行预处理

load data infile 'name.txt' into table table_name (@col1,@col2,@col3)
set
col1 = substr(@col1,2),
col2 = concat(@col2,'_suffix'),
col3 = @col3 *10;


9. 忽略某一列

load data infile 'name.txt' into table table_name (col1,col2,@dummy,col3);


10. 用mysqldump导出文件

shell> mysql -e 'select ... ' --skip-column-names database > data.txt
shell> mysqldump --no-create-info --tab=/tmp table database
mysql> select ... into outfile '/tmp/name.txt'

注意:
必须拥有file权限
输出文件不能已经存在
必须拥有对主 机有写权限的帐户