更新时间:2024-03-28 GMT+08:00

MySQL->GaussDB(DWS)

表1 数据类型映射关系

数据类型(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类型。