本文為您介紹 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 | 允許(有函數依賴關係將無法刪除) |