没有约束的列修改类型
本文为您介绍 MySQL 数据库和 OceanBase 数据库 MySQL 租户对于修改没有约束的列的字段类型的不兼容场景。
如果列中包含下表中的字段类型,通过 ALTER TABLE table_name MODIFY / CHANGE COLUMN DDL 对该列进行字段类型修改操作,MySQL 数据库和 OceanBase 数据库 MySQL 租户的区别如下。
下表中,短横线(-)表示没有、all 表示全部类型。
MySQL 数据库的字段类型 | 支持修改除自身外的目标类型 | OceanBase 数据库 MySQL 租户的字段类型 | 支持修改除自身外的目标类型 |
INT | all | INTEGER | BIGINT |
TINYINT | all | TINYINT | INTEGER<br>SMALLINT<br>MEDIUMINT<br>BIGINT<br>BOOLEAN |
SMALLINT | all | SMALLINT | INTEGER<br> BIGINT<br>MEDIUMINT |
MEDIUMINT | all | MEDIUMINT | INTEGERBIGINT |
BIGINT | all | BIGINT | - |
BOOL | all | BOOLEAN | INTEGER<br>TINYINT<br>SMALLINT<br> MEDIUMINT<br> BIGINT |
DECIMAL | all | DECIMAL | NUMERIC |
NUMERIC | all | NUMERIC | DECIMAL |
REAL | all | FLOAT | - |
DOUBLE | all | DOUBLE | - |
FLOAT | all | FLOAT | - |
BIT | all | BIT | - |
CHAR | all | CHAR | - |
NCHAR | all | CHAR | - |
VARCHAR | all | VARCHAR | TINYTEXT<br>TEXT<br>LONGTEXT<br> MEDIUMTEXT |
BINARY | all | BINARY | - |
VARBINARY | all | VARBINARY | BLOB<br>TINYBLOB<br> MEDIUMBLOB<br> LONGBLOB |
LONG_VARBINARY | all | BLOB | - |
YEAR | all | YEAR | - |
DATE | all | DATE | - |
TIME | all | TIME | - |
TIMESTAMP | all | TIMESTAMP | - |
DATETIME | all | DATETIME | - |
TINYBLOB | all | TINYBLOB | BLOB<br>LONGBLOB<br>MEDIUMBLOB |
MEDIUMBLOB | all | MEDIUMBLOB | - |
BLOB | all | BLOB | - |
LONGBLOB | all | LONGBLOB | - |
TINYTEXT | all | TINYTEXT | TEXT<br> LONGTEXT MEDIUMTEXT |
MEDIUMTEXT | all | MEDIUMTEXT | - |
TEXT | all | TEXT | - |
LONGTEXT | all | LONGTEXT | - |
ENUM | all | ENUM | - |
SET | all | SET | - |
JSON | all | JSON | - |