欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mysql outfile infile导入导出数据(附加mysqldump)_MySQL

程序员文章站 2022-05-14 13:07:06
...
mysqldump bitsCN.com

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