如何在MySQL中向enum型別列新增新值?


可以使用ALTER MODIFY命令向enum型別列新增新值。

如果要保留現有的enum值,則需要在向enum型別列新增新值時手動寫入現有的enum值。

語法如下:

ALTER TABLE yourTableName MODIFY COLUMN yourEnumColumnName
ENUM('yourExistingValue1','yourExistingValue2',........N,'yourNewValue1',’yourNewValue2’,.....N);

為了理解上述語法,讓我們建立一個表。建立表的查詢如下:

mysql> create table AddingNewValueToEnumColumn
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Colors ENUM('RED','GREEN','BLUE'),
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.64 sec)

要檢查上述表的DDL,請使用show create命令。查詢如下:

mysql> show create table AddingNewValueToEnumColumn\G

輸出如下:

*************************** 1. row ***************************
Table − AddingNewValueToEnumColumn
Create Table − CREATE TABLE `addingnewvaluetoenumcolumn` (
   `Id` int(11) NOT NULL AUTO_INCREMENT,
   `Colors` enum('RED','GREEN','BLUE') DEFAULT NULL,
   PRIMARY KEY (`Id`)
   ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

檢視enum列“Colors”,其值為'RED','GREEN','BLUE',如果需要新增其他值,請使用上述ALTER命令。

現在,讓我們新增新值,即'YELLOW','ORANGE','PINK'。以下是向enum列“Colors”新增新值的查詢:

mysql> ALTER TABLE addingnewvaluetoenumcolumn MODIFY COLUMN Colors
   -> ENUM('RED','GREEN','BLUE','YELLOW','ORANGE','PINK');
Query OK, 0 rows affected (0.17 sec)
Records − 0 Duplicates − 0 Warnings − 0

檢查表的描述以確保值已新增。語法如下:

DESC yourTableName;

使用DESC檢查表“addingnewvaluetoenumcolumn”的描述:

mysql> desc AddingNewValueToEnumColumn;

輸出如下:

+--------+-----------------------------------------------------+------+-----+---------+----------------+
| Field  | Type                                                | Null | Key | Default | Extra          |
+--------+-----------------------------------------------------+------+-----+---------+----------------+
| Id     | int(11)                                             | NO   | PRI | NULL    | auto_increment |
| Colors | enum('RED','GREEN','BLUE','YELLOW','ORANGE','PINK') | YES  |     | NULL    |                |
+--------+-----------------------------------------------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

更新於:2019年7月30日

21K+ 瀏覽量

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告