zoukankan      html  css  js  c++  java
  • 如何从mysql备份中提取单张表数据



    1、先提取备份数据中的前50行出来,查看一下备份数据格式
        head -50 bakdb.sql > head50.txt
        
        类似下面的数据是我们所需要提取的:
        
        /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
        /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
        /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
        /*!40101 SET NAMES utf8 */;
        /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
        /*!40103 SET TIME_ZONE='+00:00' */;
        /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
        /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
        /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
        /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

        -- Table structure for table `TABLE_1`
        
        说明:1、前半部分是设定数据的格式,可防止所导入的数据出现乱码
              2、下半部分表面了一个表数据的开始,只要我们能把指定表的开始到下一个表的开始中间部分内容提取出来,我们的目的就达成了
              
              
    2、确认指定表的下一个表的开始,按理说,表名顺序都是按字母排序的,我们可以用 SQLyog 查看得到,但为了以防万一,我们有必要确认一下
        grep "Table structure for table" bakdb.sql > tables.txt
        
        
    3、确认表名后,开始提取指定表数据
        awk '/-- Table structure for table `TABLE_1`/,/-- Table structure for table `TABLE_2`/{print}' bakdb.sql >> head50.txt
        
        说明:提取出来的数据是不指定库名的,我们有必要在语句开始前指定库名,避免导入数据时导错地方
              在“-- Table structure for table `TABLE_1`”下一行加多“use `DATABASE_NAME`;”

  • 相关阅读:
    Redis 学习(二十)服务器
    Redis 学习(十八)连接
    Redis学习(十七) 脚本
    Redis学习(十六)事务
    Redis学习(十四) 发布订阅
    python中如何使用requests模块下载文件并获取进度提示?
    Python实例获取mp3文件的tag信息
    python 视频处理,提取视频相关帧,读取Excel
    爬虫数据采集技术趋势-智能化解析
    Python中文转拼音代码(支持全拼和首字母缩写)
  • 原文地址:https://www.cnblogs.com/littlehb/p/5360855.html
Copyright © 2011-2022 走看看