MySQL->PostgreSQL
数据类型(MySQL) |
数据类型(PostgreSQL) |
是否支持映射 |
---|---|---|
BIGINT |
NUMERIC|BIGINT |
支持 |
BINARY |
BYTEA |
支持 |
BIT |
BIT |
支持 |
BLOB |
BYTEA |
支持 |
BOOLEAN |
BOOL |
支持 |
CHAR |
CHAR |
支持 |
DATE |
DATE |
支持 |
DATETIME |
TIMESTAMP |
支持 |
DECIMAL |
NUMERIC |
支持 |
DOUBLE |
FLOAT8 |
支持 |
ENUM |
VARCHAR |
支持 |
FLOAT |
FLOAT4|FLOAT8 |
支持 |
INT |
INTEGER |
支持 |
LONGBLOB |
BYTEA |
支持 |
LONGTEXT |
TEXT |
支持 |
MEDIUMBLOB |
BYTEA |
支持 |
MEDIUMINT |
INT |
支持 |
SET |
VARCHAR |
支持 |
SMALLINT |
INT|SMALLINT |
支持 |
TEXT |
TEXT |
支持 |
TIME |
TIME |
支持 |
TIMESTAMP |
TIMESTAMP |
支持 |
TINYBLOB |
BYTEA |
支持 |
TINYINT |
SMALLINT |
支持 |
TINYTEXT |
TEXT |
支持 |
VARBINARY |
BYTEA |
支持 |
VARCHAR |
VARCHAR |
支持 |
YEAR |
SMALLINT |
支持 |
JSON |
JSON |
支持 |
GEOMETRY |
- |
不支持 |
- 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的官方文档。
对于PostgreSQL而言,0000年,00月,00日是非法时间,DRS会转换成1970-01-01,比如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的官方文档。而PostgreSQL的TIME类型的最小值:00:00:00,最大值:24:00:00。对于MySQL中小于00:00:00,或大于24:00:00的TIME类型的值,DRS会转化成 00:00:00。
- YEAR类型,MySQL的支持的范围是:1901 to 2155, 和 0000,可参考MySQL的官方文档。由PostgreSQL中没有对应的类型,DRS会将MySQL的YEAR类型映射成SMALLINT类型。
- 对于MySQL的DATE类型的'0000'通过DRS会转换成0。
- 对于INT类型,如果该列含有自增属性(AUTO_INCREMENT)时,DRS同步时会将设置该属性的字段同步为SERIAL类型。