有约束的列修改长度

本文为您介绍 MySQL 数据库和 OceanBase 数据库 MySQL 租户对于修改不同约束下的列的字段长度的不兼容场景。

说明

本文表格中,对比类型空白表示相应约束下不支持该类型、短横线(-)表示没有。

主键(PRIMARY KEY)约束下字段长度的修改

如果 主键 列中包含下表中的字段类型,通过 ALTER TABLE table_name MODIFY / CHANGE COLUMN DDL 对该列进行字段长度修改操作,MySQL 数据库和 OceanBase 数据库 MySQL 租户的区别如下。

MySQL 数据库的字段类型

允许的操作

OceanBase 数据库 MySQL 租户的字段类型

允许的操作

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 数据库 MySQL 租户的区别与主键(PRIMAEY KEY)约束下字段长度的修改一致。

普通键(KEY)约束下字段长度的修改

如果 普通键 列中包含上述表格中的字段类型,通过 ALTER TABLE table_name MODIFY / CHANGE COLUMN DDL 对该列进行字段长度修改操作,MySQL 数据库和 OceanBase 数据库 MySQL 租户的区别与主键(PRIMAEY KEY)约束下字段长度的修改一致。

外键(FOREIGN KEY)约束下字段长度的修改

如果 外键 列中包含下表中的字段类型,通过 ALTER TABLE table_name MODIFY / CHANGE COLUMN DDL 对该列进行字段长度修改操作,MySQL 数据库和 OceanBase 数据库 MySQL 租户的区别如下。

MySQL 数据库的字段类型

允许的操作

OceanBase 数据库 MySQL 租户的字段类型

允许的操作

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 租户的区别如下。

MySQL 数据库的字段类型

允许的操作

OceanBase 数据库 MySQL 租户的字段类型

允许的操作

CHAR

增大,减小

CHAR

-

VARCHAR

增大,减小

VARCHAR

-

TINYTEXT

-

TINYTEXT

-

MEDIUMTEXT

-

MEDIUMTEXT

-

TEXT

-

TEXT

-

LONGTEXT

-

LONGTEXT

-

BINARY

-

VARBINARY

-

NCHAR

增大,减小

CHAR

-

JSON

-