数值数据类型
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] |
支持,存在差异 |
详情请参见表格下方说明中的内容。 |
示例:在UNION的CREATE TABLE AS场景中,GaussDB对于整形的CONST节点,取该整形的默认max_length,MySQL根据实际值计算max_length。
-- GaussDB场景 m_db=# CREATE TABLE test_int AS SELECT 1234567 UNION ALL SELECT '456789'; m_db=# DESC test_int; Field | Type | Null | Key | Default | Extra ----------+-------------+------+-----+---------+------- ?column? | varchar(11) | YES | | | (1 row) m_db=# DROP TABLE test_int; -- Mysql场景 mysql> CREATE TABLE test_int AS SELECT 1234567 UNION ALL SELECT '456789'; mysql> DESC test_int; +---------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+------------+------+-----+---------+-------+ | 1234567 | varchar(7) | NO | | | | +---------+------------+------+-----+---------+-------+ 1 row in set (0.00 sec) mysql> DROP TABLE test_int;
序号 |
MySQL数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
DECIMAL[(M[,D])] [ZEROFILL] |
支持,存在差异 |
MySQL DECIMAL用一个9*9的数组存储数值,整数部分和小数部分分开存储,超过该长度时优先截小数部分。GaussDB只会在整数位数超过81位时截断。 |
2 |
NUMERIC[(M[,D])] [ZEROFILL] |
支持,存在差异 |
|
3 |
DEC[(M[,D])] [ZEROFILL] |
支持,存在差异 |
|
4 |
FIXED[(M[,D])] [ZEROFILL] |
支持,存在差异 |
序号 |
MySQL数据库 |
GaussDB数据库 |
差异 |
---|---|---|---|
1 |
FLOAT[(M,D)] [ZEROFILL] |
支持,存在差异 |
FLOAT数据类型不支持KEY键值分区策略分区表。 |
2 |
FLOAT(p) [ZEROFILL] |
支持,存在差异 |
FLOAT数据类型不支持KEY键值分区策略分区表。 |
3 |
DOUBLE[(M,D)] [ZEROFILL] |
支持,存在差异 |
DOUBLE数据类型不支持KEY键值分区策略分区表。 |
4 |
DOUBLE PRECISION[(M,D)] [ZEROFILL] |
支持,存在差异 |
DOUBLE PRECISION数据类型不支持KEY键值分区策略分区表。 |
5 |
REAL[(M,D)] [ZEROFILL] |
支持,存在差异 |
REAL数据类型不支持KEY值分区策略分区表。 |
驱动中FLOAT类型和DOUBLE类型带精度标度场景,数据输入超范围不支持报错。