基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
有约束的列修改长度
更新时间:2026-04-14 15:40:37
本文为您介绍 MySQL 数据库和 OceanBase 社区版对于修改不同约束下的列的字段长度的不兼容场景。
说明
本文表格中,对比类型空白表示相应约束下不支持该类型、短横线(-)表示没有。
主键(PRIMARY KEY)约束下字段长度的修改
如果 主键 列中包含下表中的字段类型,通过 ALTER TABLE table_name MODIFY / CHANGE COLUMN DDL 对该列进行字段长度修改操作,MySQL 数据库和 OceanBase 社区版的区别如下。
| MySQL 数据库的字段类型 | 允许的操作 | OceanBase 社区版的字段类型 | 允许的操作 |
|---|---|---|---|
| INT | 增大,减小 | INTEGER | 增大,减小 |
| TINYINT | 增大,减小 | TINYINT | 增大,减小 |
| SMALLINT | 增大,减小 | SMALLINT | 增大,减小 |
| MEDIUMINT | 增大,减小 | MEDIUMINT | 增大,减小 |
| BIGINT | 增大,减小 | BIGINT | 增大,减小 |
| BOOL | - | BOOLEAN | - |
| DECIMAL | 增大,减小 | DECIMAL | 增大 |
| NUMERIC | 增大,减小 | NUMERIC | 增大 |
| REAL | 增大,减小 | FLOAT | 增大,减小 |
| DOUBLE | 增大,减小 | DOUBLE | 增大,减小 |
| FLOAT | 增大,减小 | FLOAT | 增大,减小 |
| BIT | 增大,减小 | BIT | 增大,减小 |
| CHAR | 增大,减小 | CHAR | 增大 |
| NCHAR | 增大,减小 | CHAR | 增大 |
| VARCHAR | 增大,减小 | VARCHAR | 增大 |
| BINARY | 增大,减小 | BINARY | - |
| VARBINARY | 增大,减小 | VARBINARY | 增大 |
| LONG VARBINARY | - | ||
| YEAR | 增大,减小 | YEAR | 增大(实际固定 4) |
| DATE | - | DATE | - |
| TIME | 增大,减小 | TIME | 增大 |
| TIMESTAMP | 增大,减小 | TIMESTAMP | 增大 |
| DATETIME | 增大,减小 | DATETIME | 增大 |
| TINYBLOB | - | ||
| MEDIUMBLOB | - | ||
| BLOB | - | ||
| LONGBLOB | - | ||
| TINYTEXT | - | ||
| MEDIUMTEXT | - | ||
| TEXT | - | ||
| LONGTEXT | - | ||
| ENUM | 增大,减小 | ENUM | 增大 |
| SET | 增大,减小 | SET | 增大 |
| JSON | - |
唯一键(UNIQUE KEY)约束下字段长度的修改
如果 唯一键 列中包含上述表格中的字段类型,通过 ALTER TABLE table_name MODIFY / CHANGE COLUMN DDL 对该列进行字段长度修改操作,MySQL 数据库和 OceanBase 社区版的区别与主键(PRIMAEY KEY)约束下字段长度的修改一致。
普通键(KEY)约束下字段长度的修改
如果 普通键 列中包含上述表格中的字段类型,通过 ALTER TABLE table_name MODIFY / CHANGE COLUMN DDL 对该列进行字段长度修改操作,MySQL 数据库和 OceanBase 社区版的区别与主键(PRIMAEY KEY)约束下字段长度的修改一致。
外键(FOREIGN KEY)约束下字段长度的修改
如果 外键 列中包含下表中的字段类型,通过 ALTER TABLE table_name MODIFY / CHANGE COLUMN DDL 对该列进行字段长度修改操作,MySQL 数据库和 OceanBase 社区版的区别如下。
| MySQL 数据库的字段类型 | 允许的操作 | OceanBase 社区版的字段类型 | 允许的操作 |
|---|---|---|---|
| INT | 增大,减小 | INTEGER | 增大,减小 |
| TINYINT | 增大,减小 | TINYINT | 增大,减小 |
| SMALLINT | 增大,减小 | SMALLINT | 增大,减小 |
| MEDIUMINT | 增大,减小 | MEDIUMINT | 增大,减小 |
| BIGINT | 增大,减小 | BIGINT | 增大,减小 |
| BOOL | - | BOOLEAN | - |
| DECIMAL | - | DECIMAL | 增大 |
| NUMERIC | - | NUMERIC | 增大 |
| REAL | 增大,减小 | FLOAT | 增大,减小 |
| DOUBLE | 增大,减小 | DOUBLE | 增大,减小 |
| FLOAT | 增大,减小 | FLOAT | 增大,减小 |
| BIT | - | BIT | 增大,减小 |
| CHAR | - | CHAR | 增大 |
| NCHAR | - | CHAR | 增大 |
| VARCHAR | 增大 | VARCHAR | 增大 |
| BINARY | - | BINARY | - |
| VARBINARY | 增大 | VARBINARY | 增大 |
| LONG VARBINARY | - | ||
| YEAR | - | YEAR | 增大(实际固定4) |
| DATE | - | DATE | - |
| TIME | - | TIME | 增大 |
| TIMESTAMP | - | TIMESTAMP | 增大 |
| DATETIME | - | DATETIME | 增大 |
| TINYBLOB | - | ||
| MEDIUMBLOB | - | ||
| BLOB | - | ||
| LONGBLOB | - | ||
| TINYTEXT | - | ||
| MEDIUMTEXT | - | ||
| TEXT | - | ||
| LONGTEXT | - | ||
| ENUM | 增大 | ENUM | 增大 |
| SET | 增大 | SET | 增大 |
| JSON | - |
全文索引(FULLTEXT)约束下字段长度的修改
如果 全文索引 列中包含下表中的字段类型,通过 ALTER TABLE table_name MODIFY / CHANGE COLUMN DDL 对该列进行字段长度修改操作,MySQL 数据库和 OceanBase 社区版的区别如下。
| MySQL 数据库的字段类型 | 允许的操作 | OceanBase 社区版的字段类型 | 允许的操作 |
|---|---|---|---|
| CHAR | 增大,减小 | CHAR | - |
| VARCHAR | 增大,减小 | VARCHAR | - |
| TINYTEXT | - | TINYTEXT | - |
| MEDIUMTEXT | - | MEDIUMTEXT | - |
| TEXT | - | TEXT | - |
| LONGTEXT | - | LONGTEXT | - |
| BINARY | - | ||
| VARBINARY | - | ||
| NCHAR | 增大,减小 | CHAR | - |
| JSON | - |