本文为您介绍 MySQL 数据库和 OceanBase 数据库 MySQL 租户对于删除不同约束下字段的不兼容场景。
本文表格中,对比类型空白表示相应约束下不支持该类型。
删除主键(PRIMARY KEY)约束下的列
如果删除的 主键列 中包含下表中的字段类型,通过 ALTER TABLE 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 | 不允许 |
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 DDL 语句进行删除列操作时,MySQL 数据库和 OceanBase 数据库 MySQL 租户的区别与删除主键(PRIMARY KEY)约束下的列一致。
删除普通键(KEY)约束下的列
如果删除的 普通键 列中包含上述表格中的字段类型,通过 ALTER TABLE DDL 语句进行删除列操作时,MySQL 数据库和 OceanBase 数据库 MySQL 租户的区别与删除主键(PRIMARY KEY)约束下的列一致。
删除全文索引(FULLTEXT)约束下的列
如果删除的 全文索引 列中包含下表中的字段类型,通过 ALTER TABLE DDL 语句进行删除列操作时,MySQL 数据库和 OceanBase 数据库 MySQL 租户的区别如下。
MySQL 数据库的字段类型 | 是否允许执行删除 | OceanBase 数据库 MySQL 租户的字段类型 | 是否允许执行删除 |
CHAR | 允许 | CHAR | 不允许 |
VARCHAR | 允许 | VARCHAR | 不允许 |
TINYTEXT | 允许 | TINYTEXT | 不允许 |
MEDIUMTEXT | 允许 | MEDIUMTEXT | 不允许 |
TEXT | 允许 | TEXT | 不允许 |
LONGTEXT | 允许 | LONGTEXT | 不允许 |
BINARY | 不允许 | ||
VARBINARY | 不允许 | ||
NCHAR | 允许 | CHAR | 不允许 |
JSON | 允许(有函数依赖关系将无法删除) |