Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 기존 테이블에 새로운 ENUM(열거형) 컬럼 추가하는 방법

이미 생성된 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: 0

4. 변경된 테이블 구조 확인하기

컬럼이 정상적으로 추가되었는지 다시 한번 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 컬럼을 추가할 수 있습니다.