向现有 MySQL 表添加新枚举列?

mysqlmysqli database

要向现有 MySQL 表添加新枚举列,可以使用 ALTER 命令。语法如下:

ALTER TABLE yourTableName ADD yourColumnName ENUM('yourValue1','yourValue2’....N) NOT NULL;

首先我们创建一个表:

mysql> create table DemoTable
(
   StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   StudentName varchar(200),
   StudentAge int
);
Query OK, 0 rows affected (0.62 sec)

使用 DESC 命令检查表的描述:

mysql> DESC DemoTable;

这将产生以下输出:

+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| StudentId   | int(11)      | NO   | PRI | NULL    | auto_increment |
| StudentName | varchar(200) | YES  |     | NULL    |                |
| StudentAge  | int(11)      | YES  |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)

以下是向现有表添加新枚举列的查询。我们设置了学生性别:

mysql> ALTER TABLE DemoTable ADD StudentGender ENUM('Male','Female') NOT NULL;
Query OK, 0 rows affected (0.40 sec)
Records: 0 Duplicates: 0 Warnings: 0

让我们再次检查一下表的描述:

mysql> desc DemoTable;

这将产生以下输出并显示 GENDER 的枚举值:

+---------------+-----------------------+------+-----+---------+----------------+
| Field         | Type                  | Null | Key | Default | Extra          |
+---------------+-----------------------+------+-----+---------+----------------+
| StudentId     | int(11)               | NO   | PRI | NULL    | auto_increment |
| StudentName   | varchar(200)          | YES  |     | NULL    |                |
| StudentAge    | int(11)               | YES  |     | NULL    |                |
| StudentGender | enum('Male','Female') | NO   |     | NULL    |                |
+---------------+-----------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

查看上面的示例输出,StudentGender 列的数据类型为 ENUM。


相关文章