本文為您介紹 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 | - |