MySQL에서 여러 열을 동시에 변경하는 방법
MySQL에서는 ALTER TABLE 문장과 CHANGE 명령어를 사용하면 하나의 쿼리만으로 여러 열(컬럼)의 이름과 데이터 타입을 동시에 변경할 수 있습니다. 각 변경 사항을 쉼표(,)로 구분하여 나열하면 됩니다.
기본 문법
alter table yourTableName
change yourOldColumnName1 yourNewColumnName1 dataType,
yourOldColumnName2 yourNewColumnName2 dataType,
.
.
.
N
예제용 테이블 생성
위 문법을 실제로 이해하기 위해 먼저 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> create table AlterMultipleColumns
-> (
-> Id int,
-> Name varchar(200)
-> );
Query OK, 0 rows affected (0.93 sec)
생성된 테이블에는 현재 Id와 Name이라는 두 개의 열이 있습니다. 이번 예제에서는 이 두 열을 모두 변경해 보겠습니다.
여러 열을 한 번에 변경하기
여기서는 Id 열을 StudentId(varchar(10))로, Name 열을 StudentName(varchar(100))으로 변경합니다. 여러 열을 동시에 변경하는 쿼리는 다음과 같습니다.
mysql> alter table AlterMultipleColumns
-> change Id StudentId varchar(10),
-> change Name StudentName varchar(100);
Query OK, 0 rows affected (1.82 sec)
Records: 0 Duplicates: 0 Warnings: 0
변경 결과 확인하기
열이 정상적으로 변경되었는지 확인하려면 desc 명령어를 사용하여 테이블 구조를 조회하면 됩니다.
mysql> desc AlterMultipleColumns;
위 쿼리의 실행 결과는 다음과 같습니다.
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| StudentId | varchar(10) | YES | | NULL | |
| StudentName | varchar(100) | YES | | NULL | |
+-------------+--------------+------+-----+---------+-------+
2 rows in set (0.06 sec)
출력 결과에서 확인할 수 있듯이, 기존의 Id와 Name 열이 각각 StudentId(varchar(10))와 StudentName(varchar(100))으로 성공적으로 변경되었습니다. 이처럼 CHANGE 절을 쉼표로 구분하여 여러 개 작성하면, 별도의 ALTER TABLE 문장을 반복 실행하지 않고도 하나의 쿼리로 여러 열의 이름과 데이터 타입을 한 번에 수정할 수 있습니다.