• mysql提取.sql备份文件中的单个表以及表数据


    背景:随着业务模块的不断在增多,数据库mysql容量也是越来越大,做测试时,整个备份还原比较耗费时间,由于有时候仅仅需要单个表或者少数几个表,要想从整个备份文件中提取指定的表以及数据,需要以下方法。

    说明:mysql常规备份还原后续补充。。

    废话不说,直接上干货:

    1、从整个.sql备份文件中提取表结构

      提取"sp_money_detail"表结构(表创建语句)

    [root@centos7-50 data]# sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `sp_money_detail`/!d;q' qerpdb_test_v2.sql
      DROP TABLE IF EXISTS `sp_money_detail`;
      /*!40101 SET @saved_cs_client     = @@character_set_client */;
      /*!40101 SET character_set_client = utf8 */;
      CREATE TABLE `sp_money_detail` (
        `spMoneyDetailId` int(11) NOT NULL AUTO_INCREMENT,
        `spShopId` int(11) DEFAULT NULL,
        `wsWarehouseId` int(11) DEFAULT NULL COMMENT '仓库ID',
        `type` tinyint(4) NOT NULL,
        `delta` decimal(12,2) NOT NULL,
        `result` decimal(12,2) NOT NULL,
        `outId` int(11) DEFAULT NULL,
        `outNo` varchar(63) DEFAULT NULL,
        `createTime` timestamp NULL DEFAULT NULL,
      PRIMARY KEY (`spMoneyDetailId`),
      KEY `I_sp_money_detail_sid` (`spShopId`)
    ) ENGINE=InnoDB AUTO_INCREMENT=172068 DEFAULT CHARSET=utf8mb4;
    /*!40101 SET character_set_client = @saved_cs_client */;
      

    这样就提取到了表的创建语句。可以直接丢到数据库中进行表的创建

      提取表"sp_money_detail"数据(也就是提取表的插入语句)

    [root@centos7-50 data]# grep 'INSERT INTO `sp_money_detail`' qerpdb_test_v2.sql
    INSERT INTO `sp_money_detail` VALUES ('78156', '252', null, '21', '-4872.00', '-4872.00', '65321', 'MD17121900070', '2017-12-19 15:37:11');
    INSERT INTO `sp_money_detail` VALUES ('78157', '253', null, '21', '-100.00', '-100.00', '65324', 'MD17122100040', '2017-12-21 15:50:14');
    INSERT INTO `sp_money_detail` VALUES ('78158', '253', null, '21', '-230.00', '-330.00', '65325', 'MD17122100056', '2017-12-21 16:19:38');
    INSERT INTO `sp_money_detail` VALUES ('78159', '253', null, '21', '-230.00', '-560.00', '65326', 'MD17122100064', '2017-12-21 16:38:03');
    ...

    此方法,是把创表语句以及数据插入语句打印到控制台,也可以使用重定向的方式,把这些语句输出到指定的文件中。

  • 相关阅读:
    hdu4331 Image Recognition 就暴力啊。。啊。。
    [置顶] ASP.Net中服务器控件的生命周期
    Windows下通过脚本快速修改IP地址
    java对象转json应clone,避免生成json串有问题
    Oracle表空间常用操作
    redhat5安装jdk6、eclipse和tomcat6
    Oracle 表的常见操作
    一道来自华为的C机试题目
    [置顶] 获取系统时间的方法--linux
    html5 命运之轮生产
  • 原文地址:https://www.cnblogs.com/tchua/p/8864584.html
Copyright © 2020-2023  润新知