mysql提取.sql备份文件中的单个表以及表数据 |
您所在的位置:网站首页 › sql备份一个表 › 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.sqlINSERT 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\');...此方法,是把创表语句以及数据插入语句打印到控制台,也可以使用重定向的方式,把这些语句输出到指定的文件中。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |