如何在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)
廣告