mysql outfile infile导入导出数据(附加mysqldump)_MySQL
mysql outfile infile导入导出数据(附加mysqldump)
导出
[plain]
SELECT * INTO OUTFILE '/tmp/jason.txt' FIELDS TERMINATED BY ',' FROM test.jason;
或者
[plain]
SELECT * INTO OUTFILE '/tmp/jason1.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '/n' FROM test.jason1;
输出:
"2013-04-09 00:06:56","100000198108800","EXPORT_INFO","BUY_ITEM_INNER",65,10,1004,10,"11","2",100
"2013-04-09 00:06:59","1068029027","EXPORT_INFO","BUY_ITEM_INNER",16,7,304,7,"11","2",70
"2013-04-09 00:08:27","100000198108800","EXPORT_INFO","BUY_ITEM_INNER",65,2,1004,2,"11","2",20
导入
[plain]
LOAD DATA INFILE '/tmp/jason.txt' INTO TABLE aa.jason FIELDS TERMINATED BY ',';
或者
[plain]
LOAD DATA INFILE '/tmp/jason1.txt' INTO TABLE aa.jason1 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '/n';
总结:
FIELDS TERMINATED BY ',' 字段间分割符
OPTIONALLY ENCLOSED BY '"' 将字段包围 对数值型无效
LINES TERMINATED BY '/n' 换行符
mysqldump也有同样功能
[plain]
mysqldump -uroot -p -T /tmp test fi --fields-enclosed-by=/" --fields-terminated-by="/t"
fi 是导出的文件名,默认添加.txt
test 是要导出的库名
-T /tmp 是导出的目录位置
--fields-enclosed-by=/" 是每个数据都在双引号里面
--fields-terminated-by="/t" 表示每个数据是以制表符分割的
这里再说明一下mysqldump的几个参数吧
--lock-all-tables ,-x 在开始导出数据之前,提交请求锁定所有的表,以保证数据的一致性,这是一个全局读锁,并且自动关闭--single-transaction和--lock-tables选项,备份完成后,该会话断开,会自动解锁。
--lock-tables,-l 这个选项和--lock-all-tables 类似,但是它是指锁定当前要导出的数据表,而不是一下子把整个数据库的表都锁起来,本选项只适用于MyISAM表,如果是innodb表的话,可以使用--single-transaction选项。
--single-transaction InnoDB 表在备份时,通常启用选项 --single-transaction 来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为:REPEATABLE READ,以确保本次会话(dump)时,不会看到其他会话已经提交了的数据。它只适用于事务表,例如Innodb或者BDB,想要导出大表的话,应该结合--quick选项使用。
--no-create-info, -t 只导出数据,而不添加create table语句
--no-data, -d 不导出任何表数据,只导出表结构。
bitsCN.com