Postgresql与Mysql字段类型比较

2025年5月14日 作者 unix2go

以下是 PostgreSQL 和 MySQL 在字段类型上的比较:

整数类型

PostgreSQLMySQL描述
SMALLINTSMALLINT16 位整数
INTEGER/INTINT32 位整数
BIGINTBIGINT64 位整数

浮点数类型

PostgreSQLMySQL描述
REALFLOAT32 位浮点数
DOUBLE PRECISIONDOUBLE64 位浮点数
FLOAT4FLOAT32 位浮点数(PostgreSQL 特有)
FLOAT8DOUBLE64 位浮点数(PostgreSQL 特有)

精确数值类型

PostgreSQLMySQL描述
NUMERIC/DECIMALDECIMAL精确数值类型
NUMERIC(p, s)DECIMAL(p, s)精确数值类型,p 为精度,s 为小数位数

字符串类型

PostgreSQLMySQL描述
CHAR(n)CHAR(n)固定长度字符串
VARCHAR(n)VARCHAR(n)可变长度字符串
TEXTTEXT大文本类型
JSON/JSONBJSONJSON 数据类型

日期和时间类型

PostgreSQLMySQL描述
DATEDATE日期类型
TIMETIME时间类型
TIMESTAMPTIMESTAMP/DATETIME时间戳类型
INTERVAL无直接对应时间间隔类型

布尔类型

PostgreSQLMySQL描述
BOOLEANBOOLEAN/TINYINT(1)布尔类型

其他类型

PostgreSQLMySQL描述
UUID无直接对应UUID 类型
ARRAY无直接对应数组类型
HSTORE无直接对应键值对类型
JSONB无直接对应JSONB 类型(PostgreSQL 特有)

需要注意的是,虽然 PostgreSQL 和 MySQL 在某些类型上具有相似的名称,但它们的具体实现和行为可能会有所不同。此外,PostgreSQL 具有一些 MySQL 不支持的类型,如 JSONBARRAYHSTORE 等。