Mysql数据库采用csv进行导入导出

 最近的工作,围绕师兄离职展开,嗯,还需要恶补的大概有:数据库设计与操作、git常见使用问题、数据库导入导出、熟悉合代码啥的。

在导入师兄给的1GB左右的数据库sql文件的时候,很郁闷的发现,导入一半卡住了,嗯,于是,委琐的手动导出了剩下没有导入的数据库,然后再导进去。

那么,遇到这种情况,是否可以考虑其他方式呢?那就是csv导入导出这种方式了,可以说是很适合了。

------------------------------------------我是分界线--------------------------------------------------------------------------

步骤详解

1:从原有数据库导出数据

#选择test.userlist数据表中的内容,存储到E://test-csv/test.userlist.csv中去
SELECT * INTO OUTFILE 'E://test-csv/test.userlist.csv' FIELDS TERMINATED BY ',' FROM `test`.`userlist`;

使用类似上面的这样的语句就好了的,将所有数据库中涉及到的数据表依次导出。

2:在新的机器上构建数据库的结构

#导出数据库的格式设计:
CREATE SCHEMA `csvtest` DEFAULT CHARACTER SET utf8 ;

#数据库1
DROP TABLE IF EXISTS `userlist`;
CREATE TABLE `userlist` (
  `userid` int(11) NOT NULL,
  `username` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`userid`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3:导入数据到新建的数据库结构中去

#导入userlist
load data infile 'E://test-csv/test.userlist.csv' into table userlist character set 'utf8' fields TERMINATED BY ','; 
总结一下

如果你的数据库中不涉及到外键的话,这样的方式,在构建数据库结构、导入数据到新建的数据库结构中去的时候,是不需要区分先后关系的,而如果你的数据库中涉及到了外键的话,那么,在构建数据库结构、导入数据到新建的数据库结构中去的时候,是需要区分先后关系的。

适用情形
1:适用于数据量很大,而没有外键的情况

2:适用于有外键,数据量很大,一次导出,多次导入

3:适用于有外键,数据量很大,结构基本不变

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值