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权限
输出文件不能已经存在
必须拥有对主机有写权限的帐户
阅读(4537) | 评论(0) | 转发(0) |