数值数据类型
除特别说明外,MySQL兼容性M-Compatibility模式中的数据类型精度、标度、位数大小等默认不支持用浮点型数值定义,建议使用合法的整型数值定义。
| MySQL数据库 | GaussDB数据库 | 差异 |
|---|---|---|
| BOOL | 支持,存在差异 | 输出格式:GaussDB中SELECT TRUE/FALSE输出结果为t/f,MySQL为1/0。 MySQL:BOOL/BOOLEAN类型实际映射为TINYINT类型。 |
| BOOLEAN | 支持,存在差异 | |
| TINYINT[(M)] [UNSIGNED] [ZEROFILL] | 支持,存在差异 | |
| SMALLINT[(M)] [UNSIGNED] [ZEROFILL] | 支持,存在差异 | |
| MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] | 支持,存在差异 | MySQL存储MEDIUMINT数据需要3字节。
GaussDB映射为INT类型,存储需要4字节,通过边界值判断限制取值范围。
其他差异请参见表格下方说明中的内容。 |
| INT[(M)] [UNSIGNED] [ZEROFILL] | 支持,存在差异 | |
| INTEGER[(M)] [UNSIGNED] [ZEROFILL] | 支持,存在差异 | |
| BIGINT[(M)] [UNSIGNED] [ZEROFILL] | 支持,存在差异 |
| MySQL数据库 | GaussDB数据库 | 差异 |
|---|---|---|
| DECIMAL[(M[,D])] [ZEROFILL] | 支持,存在差异 | MySQL DECIMAL用一个9*9的数组存储数值,整数部分和小数部分分开存储,超过该长度时优先截小数部分。GaussDB只会在整数位数超过81位时截断。 |
| NUMERIC[(M[,D])] [ZEROFILL] | 支持,存在差异 | |
| DEC[(M[,D])] [ZEROFILL] | 支持,存在差异 | |
| FIXED[(M[,D])] [ZEROFILL] | 支持,存在差异 |
| MySQL数据库 | GaussDB数据库 | 差异 |
|---|---|---|
| FLOAT[(M,D)] [ZEROFILL] | 支持,存在差异 | FLOAT数据类型不支持KEY键值分区策略分区表。 |
| FLOAT(p) [ZEROFILL] | 支持,存在差异 | FLOAT数据类型不支持KEY键值分区策略分区表。 |
| DOUBLE[(M,D)] [ZEROFILL] | 支持,存在差异 | DOUBLE数据类型不支持KEY键值分区策略分区表。 |
| DOUBLE PRECISION[(M,D)] [ZEROFILL] | 支持,存在差异 | DOUBLE PRECISION数据类型不支持KEY键值分区策略分区表。 |
| REAL[(M,D)] [ZEROFILL] | 支持,存在差异 | REAL数据类型不支持KEY值分区策略分区表。 |