
# PostgreSQL与DWS字段类型映射
Migration会根据源端的字段类型按默认规则转换成目的端字段类型，并以此完成自动建表和实时同步。
#### 字段类型映射规则
当源端为PostgreSQL，目的端为DWS时，支持的字段类型请参见下表，以确保数据完整同步到目的端。
表1PostgreSQL \> DWS支持的字段类型 
| 类别                                                   | 数据类型（PostgreSQL）            | 数据类型（DWS）    | 说明                                             |
|:---|:---|:---|:---|
| 字符串                                                  | CHAR(M)                     | CHAR(M)      | 固定长字符串，空格填充。                                   |
| 字符串                                                  | VARCHAR(M)                  | VARCHAR(M)   | 有限制的变长字符串。                                     |
| 字符串                                                  | TEXT                        | TEXT         | 无限制的变长字符串，类似没有长度声明词的VARCHAR。                   |
| 数值                                                   | BOOLEAN                     | BOOL         | 逻辑布尔值（真/假）。                                    |
| 数值                                                   | SMALLINT                    | SMALLINT     | 即int2。                                         |
| 数值                                                   | INTEGER                     | INTEGER      | 即int/int4。                                     |
| 数值                                                   | BIGINT                      | BIGINT       | 即int8。                                         |
| 数值                                                   | DECIMAL(M,D)                | DECIMAL(M,D) | 可选择精度的精确数字。                                    |
| 数值                                                   | NUMERIC(M,D)                | NUMERIC(M,D) | 与NUMERIC等效。                                    |
| 数值                                                   | REAL                        | REAL         | 单精度浮点数（4字节）。                                   |
| 数值                                                   | DOUBLE                      | DOUBLE       | 即DOUBLE PRECISION，也可用没有精度的FLOAT表示，双精度浮点数（8字节）。 |
| 日期时间  | DATE                        | TIMESTAMP    | 源端为日期（没有一天中的时间），到目的端类型会变成日期+时间的timestamp。      |
| 日期时间  | TIME(M)                     | TIME         | 一天中的时间（不带日期）。                                  |
| 日期时间  | TIME(M) WITH TIME ZONE      | TIMETZ       | 即TIMETZ，一天中的时间（不带日期），带有时区。                     |
| 日期时间  | TIMESTAMP(M)                | TIMESTAMP    | 包括日期和时间，无时区。                                   |
| 日期时间  | TIMESTAMP(M) WITH TIME ZONE | TIMESTAMPTZ  | 即TIMESTAMPTZ，包括日期和时间，带有时区。                     |
| 日期时间  | INTERVAL                    | INTERVAL     | 时间间隔。                                          |
| 二进制                                                  | BYTEA                       | BYTEA        | 二进制数据（"字节数组"）。                                 |
| 特殊类型                                                 | MONEY                       | MONEY        | 存储固定小数精度的货币数字，如 $1,000.00。                     |
   
