이미 생성된 MySQL 테이블에 새로운 ENUM(열거형) 컬럼을 추가하려면 ALTER TABLE 명령어를 사용하면 됩니다. 기본 문법은 다음과 같습니다.
ALTER TABLE yourTableName ADD yourColumnName ENUM('yourValue1','yourValue2'....N) NOT NULL;1. 예제 테이블 생성하기
먼저 실습에 사용할 테이블을 만들어 보겠습니다.
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)2. 테이블 구조 확인하기
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)
3. ALTER TABLE로 ENUM 컬럼 추가하기
이제 기존 테이블에 새로운 ENUM 컬럼을 추가하는 쿼리를 실행합니다. 여기서는 학생의 성별(Gender) 정보를 저장하기 위해 'Male'과 'Female' 두 값을 가지는 ENUM 타입의 컬럼을 추가했습니다.
mysql> ALTER TABLE DemoTable ADD StudentGender ENUM('Male','Female') NOT NULL;
Query OK, 0 rows affected (0.40 sec)
Records: 0 Duplicates: 0 Warnings: 04. 변경된 테이블 구조 확인하기
컬럼이 정상적으로 추가되었는지 다시 한번 DESC 명령어로 확인해 보겠습니다.
mysql> desc DemoTable;
실행 결과를 보면 새로 추가된 GENDER 관련 컬럼과 함께 ENUM 값도 함께 표시되는 것을 확인할 수 있습니다.
+---------------+-----------------------+------+-----+---------+----------------+
| 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으로 지정되어 있으며, 허용되는 값인 'Male'과 'Female'이 함께 출력됩니다. 이처럼 ALTER TABLE 명령어를 활용하면 기존 데이터를 유지한 상태에서 손쉽게 새로운 ENUM 컬럼을 추가할 수 있습니다.