互联网服务MySQLmysql 备份

mysql导入数据覆盖原数据?

大佬们,比如把mysql中一个表按月份导出,再导入的时候先导入一月份的数据,再导入二月份的数据,二月就会把一月的覆盖,怎么导入才能只增加不覆盖?

参与14

2同行回答

煎山药煎山药系统运维工程师北京千眼数合
我来回答吧,现在找到方法了。1.首先导出时可以只导出创建表结构的语句,注意选项-d,表示只导出表结构mysqldump -uroot -B 库名 --tables 表名 -d --master-data=2 --force -S /usr/local/mariadb_3306/mariadb.sock >/data/table-structure2.然后再按月份导出数据文件,...显示全部

我来回答吧,现在找到方法了。
1.首先导出时可以只导出创建表结构的语句,注意选项-d,表示只导出表结构
mysqldump -uroot -B 库名 --tables 表名 -d --master-data=2 --force -S /usr/local/mariadb_3306/mariadb.sock >/data/table-structure
2.然后再按月份导出数据文件,注意选项-t,只导出表数据
mysqldump -uroot -B 库名 --tables 表名 -t --master-data=2 --force -S /usr/local/mariadb_3306/mariadb.sock --where="createTime<'2016-11-01 00:00:00'" >2016-11
3.然后先导入表结构语句
mysql -uroot -B 库名 --force -S /usr/local/mariadb_3309/mariadb.sock </data/table-structure
4.再依次导入数据
mysql -uroot -B 库名 --force -S /usr/local/mariadb_3309/mariadb.sock <2016-11
5.直接使用mysqldump导出时,默认导出了数据和表结构,导入时会判断表是否存在,存在则删除,新建一个,就会把原来已导入的数据一起删除,出现了覆盖的效果。

收起
互联网服务 · 2017-12-07
浏览6800
yhd_myyhd_my数据库管理员北京信利恒丰科技发展有限公司
说实话,MYSQL我还不是很精通,但是你这个需求,我认为可以将二月的数据导入到新表,再用insert into 1_mounth_data select * from 2_month_data; 这种方法临时处理。希望MYSQL专家给出更好的建议。显示全部

说实话,MYSQL我还不是很精通,但是你这个需求,我认为可以将二月的数据导入到新表,再用insert into 1_mounth_data select * from 2_month_data; 这种方法临时处理。希望MYSQL专家给出更好的建议。

收起
保险 · 2017-12-07
浏览6425

提问者

煎山药
系统运维工程师北京千眼数合

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-12-07
  • 关注会员:2 人
  • 问题浏览:7688
  • 最近回答:2017-12-07
  • X社区推广