本文为您介绍 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 | - |