当前位置: 首页 > article >正文

MySQL表转移数据的三种方式

说明:在一些情况,像大表修改表结构,重新建立分区(对已有表建立分区,对历史数据是不生效的),或者表备份,我们需要将表的数据,从一张表转移到另外一张表里。本文介绍,MySQL表转移表数据的三种方式;

方式一

使用下面两行命令,将数据导出为一个sql,再导入到目标表里;

# 导出
mysqldump -u root -p --no-create-info --skip-extended-insert -t partition_demo tb_user > tb_user_data.sql

# 导入
mysql -u root -p partition_demo < tb_user_data.sql

其中,

  • partition_demo:数据库名;

  • tb_user:表名;

  • tb_user_data.sql:导出的文件名,可以在前面加上文件路径,文件内容实际上就是insert语句;

  • root:数据库用户名;

方式二

如果表数据量不大,可以直接用下面这行SQL,将数据直接插入到另外一张表里。当然,下面SQL是全字段插入,如果需要做映射,可以选择某几个字段插入;

insert into tb_user select * from tb_user_source;

方式三

可以使用Canal,用代码的方式转移,这种方式的好处是灵活可控,数据量大的表也可以,另外可以实现在线转移,不影响线上业务。参考下面这两篇文章:

  • Canal入门使用

  • 使用Canal实现MySQL主从同步

总结

以上三种方式是博主能想到的,但肯定不止这三种,如果使用数据库连接工具,还可以直接将数据导出,然后再导入,操作起来很方便,但是效率堪忧。


http://www.kler.cn/a/383669.html

相关文章:

  • Redis 持久化机制详解
  • nest 学习3
  • Leetcode 3393. Count Paths With the Given XOR Value
  • git命令恢复/还原某个文件、删除远程仓库中的文件
  • Android Studio新建项目在源码中编译
  • Qt:QMetaObject::connectSlotsByName实现信号槽自动关联
  • 【Python进阶】Python中的网络爬虫策略:高效数据抓取与解析
  • 数据库优化指南:如何将基本功能运用到极致?
  • Qt(程序打包)
  • ubuntu 异常 断电 日志 查看
  • 半导体设备行业,多单收购
  • 微信小程序大学生闲置物品交易平台+ssm(lw+演示+源码+运行)
  • 势不可挡 创新引领 | 生信科技SOLIDWORKS 2025新品发布会·苏州站精彩回顾
  • vue实现websocket实时短消息通知
  • 完全背包模板总结
  • 设计者模式之策略模式
  • 《构建一个具备从后端数据库获取数据并再前端显示的内容页面:前后端实现解析》
  • 集中管理用户名和密码,定期修改密码快捷方便
  • 参数跟丢了之JS生成器和包装器
  • PostgreSQL核心揭秘(三)-元组结构
  • 【科普】conda、virtualenv, venv分别是什么?它们之间有什么区别?
  • 讲讲RabbitMQ 性能优化
  • Qt中弹出窗口的实现与鼠标事件处理
  • ctfshow(91,96,97)--PHP特性
  • Spring Boot 中Nacos的用法及流程
  • lua入门教程 :模块和包