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

华为GaussDB T 类型映射

墨天轮 2019-10-12
340

类型映射

GaussDB 100支持数据类型映射功能。类型映射主要应用于当业务无法修改表定义的情况下,数据库根据用户定义的规则,将NUMBER类型替换为需要的数据类型。

注意事项

  • 类型映射功能仅作用于执行建表或者修改表定义,执行DDL语句的阶段。
  • 仅在USE_NATIVE_DATATYPE参数设置为TRUE时,类型映射功能生效。
  • 新增、修改映射文件,数据库重启生效。

操作步骤

  • 在配置文件zengine.ini中增加配置项TYPE_MAP_FILE=<filename>。

    <filename>为类型映射文件,默认读取路径为${GSDB_DATA}/cfg,也支持指定为绝对路径。

  • 在类型映射文件中,按照用户添加类型映射规则。

    用户名支持简易*模糊匹配。类型映射文件格式如下所示。

    [username] old_datatype=map_datatype
    • 整型的数据类型,支持自动类型映射。边界值需要根据实际应用场景,在映射规则文件中显式配置以启用“指定类型映射”能力。
    • NUMBER(p,s)(s>0)数据类型,由于涉及精度,均需要通过显式指定类型映射的方式配置。

    详细规则如下表所示。

    表1 数据映射表

    映射方式

    原有数据类型

    映射的数据类型

    自动类型映射

    NUMBER(p),p的取值范围为[1,2]

    TINYINT

    NUMBER(p),p=4

    SMALLINT

    NUMBER(p),p的取值范围为[6,9]

    INTEGER

    NUMBER(p),p的取值范围为[12,18]

    BIGINT

    指定类型映射

    NUMBER(p),p=3

    TINYINT

    NUMBER(p),p=5

    SMALLINT

    NUMBER(p),p=10

    INTEGER

    NUMBER(p),p=19

    BIGINT

示例

  • 在zengine.ini文件所在目录下新建文件type_map_file.ini,在zengine.ini文件中新增配置项TYPE_MAP_FILE,配置映射文件路径为“type_map_file.ini”

    vim zengine.ini
    TYPE_MAP_FILE = type_map_file.ini

  • 修改映射文件type_map_file.ini,指定映射类型。

    为用户user1设置映射规划,NUMBER(3)映射为INTEGER类型,NUMBER(11)映射为BIGINT类型。

    为用户user2设置映射规划,NUMBER(5)映射为INTEGER类型,NUMBER(25,5)映射为DOUBLE类型。
    vim type_map_file.ini
    [user1] number(3)=integer number(11)=bigint [user2] number(5)=integer number(25,5)=double

  • 重启数据库,映射规则生效。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论