MySQL에서 ALTER TABLE 명령어를 사용하면 한 번의 실행으로 두 개 이상의 열 데이터 타입을 동시에 변경할 수 있습니다. 이때 MODIFY COLUMN 절을 활용하며, 기본 문법은 다음과 같습니다.
ALTER TABLE 테이블명
MODIFY COLUMN 컬럼명1 데이터타입,
MODIFY COLUMN 컬럼명2 데이터타입,
.
.
.
MODIFY COLUMN 컬럼명N 데이터타입;
예제 테이블 생성
문법을 실제로 이해하기 위해 먼저 예제 테이블을 만들어 보겠습니다. 다음 쿼리를 실행합니다.
mysql> CREATE TABLE AddColumn
-> (
-> StudentID int,
-> StudentName varchar(200)
-> );
Query OK, 0 rows affected (0.49 sec)
위 쿼리로 "AddColumn"이라는 테이블에 두 개의 열(StudentID, StudentName)이 생성되었습니다. 이제 이 테이블의 두 열 데이터 타입을 한 번에 변경해 보겠습니다.
여러 열의 데이터 타입 변경하기
MODIFY COLUMN 절을 쉼표(,)로 구분하여 나열하면 여러 열을 동시에 수정할 수 있습니다.
mysql> ALTER TABLE AddColumn
-> MODIFY COLUMN StudentName varchar(300),
-> MODIFY COLUMN StudentId varchar(50);
Query OK, 0 rows affected (1.95 sec)
Records: 0 Duplicates: 0 Warnings: 0
위 쿼리에서 StudentName 열은 varchar(200)에서 varchar(300)으로, StudentId 열은 int에서 varchar(50)으로 각각 변경되었습니다.
변경 결과 확인
변경이 정상적으로 적용되었는지 확인하려면 DESC 명령어로 테이블 구조를 조회합니다.
mysql> DESC AddColumn;
실행 결과는 다음과 같습니다.
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| StudentId | varchar(50) | YES | | NULL | |
| StudentName | varchar(300) | YES | | NULL | |
+-------------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
출력 결과를 보면 두 열 모두 지정한 데이터 타입으로 성공적으로 변경된 것을 확인할 수 있습니다. 이처럼 MODIFY COLUMN 절을 나열하기만 하면 여러 열의 데이터 타입을 단 한 번의 ALTER TABLE 문으로 손쉽게 처리할 수 있습니다.