MySQL->GaussDB(DWS)
数据类型(MySQL) |
数据类型(GaussDB(DWS)) |
是否支持映射 |
---|---|---|
BIT[(M)] |
BIT |
支持 |
TINYINT[(M)] |
SMALLINT |
支持 |
TINYINT[(M)] [UNSIGNED] |
SMALLINT |
支持 |
SMALLINT[(M)] |
SMALLINT |
支持 |
SMALLINT[(M)] [UNSIGNED] |
INTEGER |
支持 |
MEDIUMINT[(M)] |
INTEGER |
支持 |
MEDIUMINT[(M)][UNSIGNED] |
INTEGER |
支持 |
INT[(M)] |
INTEGER |
支持 |
INT[(M)] [UNSIGNED] |
BIGINT |
支持 |
BIGINT[(M)] |
BIGINT |
支持 |
BIGINT[(M)] [UNSIGNED] |
NUMERIC |
支持 |
DECIMAL[(M[,D])] |
SMALLINT| INTEGER| BIGINT | NUMERIC |
支持,根据精度和标度找到合适的数据类型。 |
FLOAT(p) |
FLOAT4 |
支持 |
DOUBLE[(M,D)] |
FLOAT8 |
支持 |
DATE |
DATE |
支持,旧版本创建出来为TIMESTAMP(0) WITHOUT TIME ZONE。 |
DATETIME[(fsp)] |
TIMESTAMP |
支持 |
TIMESTAMP[(fsp)] |
TIMESTAMP WITH TIME ZONE |
支持 |
TIME[(fsp)] |
TIME |
支持 |
YEAR[(4)] |
SMALLINT |
支持 |
CHAR[(M)] |
CHAR |
支持 |
VARCHAR(M) |
CHARACTER VARYING() |
支持,根据源库列字符集,在目标库扩大相应倍数。 |
BINARY[(M)] |
BYTEA |
支持 |
VARBINARY(M) |
BYTEA |
支持 |
TINYBLOB |
BLOB |
支持 |
TINYTEXT |
TEXT |
支持 |
BLOB |
BLOB |
支持 |
TEXT |
TEXT |
支持 |
MEDIUMBLOB |
BLOB |
支持 |
MEDIUMTEXT |
TEXT |
支持 |
LONGBLOB |
BLOB |
支持 |
LONGTEXT |
TEXT |
支持 |
ENUM |
VARCHAR |
支持 |
SET |
VARCHAR |
支持 |
JSON |
JSONB |
支持 |
- DATE类型,MySQL的支持的范围是:'1000-01-01' to '9999-12-31'。
DATETIME类型,MySQL的支持的范围是:'1000-01-01 00:00:00' to '9999-12-31 23:59:59'。
TIMESTAMP类型,MySQL的支持的范围是:'1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC。
可参考MySQL的官方文档。
对于GaussDB(DWS)而言,0000年,00月,00日是非法时间,DRS任务会同步失败,比如MySQL的DATE类型的'0000-00-00'通过DRS会转换成'1970-01-01';比如MySQL的DATETIME类型或TIMESTAMP类型的'1000-00-31 23:59:59',通过DRS会转换成'1970-01-01 00:00:00'。
- TIME类型,MySQL的支持的范围是:'-838:59:59' to '838:59:59',可参考MySQL的官方文档。而GaussDB(DWS)的TIME类型的最小值:00:00:00,最大值:24:00:00。对于MySQL中小于00:00:00,或大于24:00:00的TIME类型的值,DRS任务会同步失败。
- YEAR类型,MySQL的支持的范围是:1901 to 2155, 和 0000,可参考MySQL的官方文档。由于GaussDB(DWS)中没有对应的类型,DRS会将MySQL的YEAR类型映射成SMALLINT类型。
- 对于MySQL的DATE类型的'0000'DRS任务会同步失败。
- 对于INT类型,如果该列含有自增属性(AUTO_INCREMENT)时,DRS同步时会将设置该属性的字段同步为SERIAL类型。