首页 > 数据库 > > GaussDB 100 类型映射简介
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),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 |
整型的数据类型,支持自动类型映射。边界值需要根据实际应用场景,在映射规则文件中显式配置以启用“指定类型映射”能力。
NUMBER(p,s)(s>0)数据类型,由于涉及精度,均需要通过显式指定类型映射的方式配置。
在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类型。
vim type_map_file.ini
[user1]
number(3)=integer
number(11)=bigint
[user2]
number(5)=integer
number(25,5)=double
重启数据库,映射规则生效。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3145569/ ,如需转载,请注明出处,否则将追究法律责任。