Computer >> Máy Tính >  >> Lập trình >> MySQL

Thêm một giá trị mới vào một cột kiểu dữ liệu enum trong MySQL?

Bạn có thể thêm một giá trị mới vào một cột kiểu dữ liệu enum bằng cách sử dụng lệnh ALTER MODIFY.

Nếu bạn muốn giá trị hiện có của enum, thì bạn cần phải ghi thủ công giá trị enum hiện có tại thời điểm thêm giá trị mới vào cột kiểu dữ liệu enum.

Cú pháp như sau -

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

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau -

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)

Để kiểm tra DDL của bảng trên, hãy sử dụng lệnh show create. Truy vấn như sau -

mysql> show create table AddingNewValueToEnumColumn\G

Sau đây là kết quả -

*************************** 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)

Nhìn vào cột enum ‘Màu’ với giá trị “ĐỎ”, “XANH LÁ”, “XANH LÁ” và nếu bạn muốn một giá trị khác, hãy sử dụng lệnh ALTER như đã thảo luận ở trên.

Bây giờ, hãy để chúng tôi thêm các giá trị mới, tức là "VÀNG", "ORANGE", "PINK". Sau đây là truy vấn để thêm giá trị mới vào cột enum ‘Màu’ -

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

Kiểm tra mô tả của bảng để đảm bảo rằng các giá trị được thêm vào hay không. Cú pháp như sau -

DESC yourTableName;

Kiểm tra mô tả của bảng 'addnewvaluetoenumcolumn' bằng cách sử dụng DESC -

mysql> desc AddingNewValueToEnumColumn;

Sau đây là kết quả -

+--------+-----------------------------------------------------+------+-----+---------+----------------+
| 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)