删除有约束的列

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

允许(有函数依赖关系将无法删除)