全部產品
Search
文件中心

ApsaraDB for OceanBase:有約束的列修改長度

更新時間:Jul 01, 2024

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

-