暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T DUMP

墨天轮 2019-10-12
1869

DUMP

功能描述

在数据库迁移或者数据备份时,需要进行数据导入导出,GaussDB 100支持使用“DUMP”命令导出数据。

语法格式

DUMP { TABLE table_name | QUERY "select_query " } INTO FILE 'file_name ' [ FILE SIZE 'uint64_file_size' ] [ { FIELDS | COLUMNS } ENCLOSED BY 'ascii_char' [ OPTIONALLY ] ] [ { FIELDS | COLUMNS } TERMINATED BY 'string '] [ { LINES | ROWS } TERMINATED BY 'string '] [ CHARSET 'string' ];

参数说明

  • table_name

    需要导出的表名。

  • select_query

    需要导出的行,这些行是使用SELECT子句指定返回的结果。

  • file_name

    导出的文件名。

  • uint64_file_size

    指定导出文件的大小,超过指定的大小后创建新的文件,默认值:0M,表示不拆分。

  • FIELDS

    指定每一列的格式。

  • COLUMNS

    FIELDS的同义词。

  • ENCLOSED BY

    指定列的包含符号。

  • ascii_char

    每一列的包含符号, 例如"ABC",这里双引号是包含符,默认不指定包含符。

    取值范围:单个ASCII字符, 或者空字符串('',表示不指定包含符)。

    • 10进制ASCII字符取值范围为0~127。
    • 16进制ASCII字符取值范围为\x00~\x7F。
    • 常见转义字符请参见表1。
  • OPTIONALLY

    仅对字符串和二进制类型增加符号,默认没有包含符。

  • TERMINATED BY

    指定列的分隔字符串。

  • string

    列分隔符,默认为“,”。

    取值范围:单个ASCII字符。

    • 10进制ASCII字符取值范围为0~127。
    • 16进制ASCII字符取值范围为\x00~\x7F。
    • 常见转义字符请参见表1。
  • LINES

    一条记录有多行,则可以使用LINES来指定行的结束符。

  • ROWS

    LINES的同义词。

    string

    行尾结束符,默认为\n。

    取值范围:单个ASCII字符。

    • 10进制ASCII字符取值范围为0~127。
    • 16进制ASCII字符取值范围为\x00~\x7F。
    • 常见转义字符请参见表1。
  • CHARSET

    指定导出数据的字符集。

    string

    当前仅支持UTF8无BOM字符集(CHARSET = UTF8)和GBK字符集(CHARSET = GBK),默认UTF8无BOM字符集。

  • row_terminated_char

    行尾结束符,默认为\n。

    取值范围:单个ASCII字符。

    • 10进制ASCII字符取值范围为0~127。
    • 16进制ASCII字符取值范围为\x00~\x7F。
    • 常见转义字符请参见表1。
      表1 常见转义字符表

      转义字符

      意义

      ASCII码值(十进制)

      16进制值

      \a

      响铃(BEL)

      007

      \x07

      \f

      换页(FF),将当前位置移到下页开头

      012

      \x0C

      \n

      换行(LF) ,将当前位置移到下一行开头

      010

      \x0A

      \r

      回车(CR) ,将当前位置移到本行开头

      013

      \x0D

      \t

      水平制表(HT) (跳到下一个TAB位置)

      009

      \x09

      \v

      垂直制表(VT)

      011

      \x0B

      \\

      代表一个反斜线字符''\'

      092

      \x5C

      '' (两个单引号)

      代表一个单引号(撇号)字符

      039

      \x27

      \"

      代表一个双引号字符

      034

      \x22

      \?

      代表一个问号

      063

      \x3F

      \0

      空字符(NULL)

      000

      \x00

      \ooo

      1到3位八进制数所代表的任意字符

      三位八进制

      -

      \xhh

      1到2位十六进制所代表的任意字符

      二位十六进制

      -

说明:

由于单引号是SQL的转义符,在指定单引号作为分隔符号时,需要指定两个单引号作为分隔符。例如,

.... enclosed by ''''....

算上符号包含符, 共计4个包含符。

数据导出的转义符:当字段内容中遇到指定的包裹符的时候,用包裹符再转义一次,例如字段内容是1"1导出内容为 "1""1"

示例

  • 导出表trainning,并增加“|”符号。
    --删除表training。 DROP TABLE IF EXISTS training;
    --创建表training。 CREATE TABLE training(staff_id INT NOT NULL,course_name CHAR(50),course_start_date DATETIME, course_end_date DATETIME,exam_date DATETIME,score INT);
    --向表training中插入记录1。 INSERT INTO training(staff_id,course_name,course_start_date,course_end_date,exam_date,score) VALUES(10,'SQL majorization','2017-06-15 12:00:00','2017-06-20 12:00:00','2017-06-25 12:00:00',90); --向表training中插入记录2。 INSERT INTO training(staff_id,course_name,course_start_date,course_end_date,exam_date,score) VALUES(10,'information safety','2017-06-20 12:00:00','2017-06-25 12:00:00','2017-06-26 12:00:00',95); --向表training中插入记录3。 INSERT INTO training(staff_id,course_name,course_start_date,course_end_date,exam_date,score) VALUES(10,'master all kinds of thinking methonds','2017-07-15 12:00:00','2017-07-20 12:00:00','2017-07-25 12:00:00',97); --提交事务。 COMMIT;
    --导出表training,并增加“|”符号。 DUMP TABLE training INTO FILE '/opt/gaussdb/data/training_backup' FIELDS ENCLOSED BY '|';
  • 导出表training中course_name为SQL优化的行,为每一列以单引号包含,并添加“|”分隔符。
    DUMP QUERY "SELECT course_name,score,exam_date FROM training WHERE course_name = 'SQL majorization'" INTO FILE '/opt/gaussdb/data/training_query_backup ' COLUMNS ENCLOSED BY '''' COLUMNS TERMINATED BY '|';
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论