MySQL迁移到DWS的数据类型映射
MySQL数据类型 | 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 | 支持 |
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的官方文档。
- TIME类型,MySQL的支持的范围是:'-838:59:59' to '838:59:59',可参考MySQL的官方文档。而DWS的TIME类型的最小值:00:00:00,最大值:24:00:00。对于MySQL中小于00:00:00,或大于24:00:00的TIME类型的值,任务会同步失败。
- YEAR类型,MySQL的支持的范围是:1901 to 2155, 和 0000,可参考MySQL的官方文档。由于DWS中没有对应的类型,会将MySQL的YEAR类型映射成SMALLINT类型。
- 对于MySQL的DATE类型的'0000'任务会同步失败。
- 对于INT类型,如果该列含有自增属性(AUTO_INCREMENT)时,同步时会将设置该属性的字段同步为SERIAL类型。

