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

MySQL 기존 테이블의 특정 위치에 열(컬럼) 추가하는 방법

MySQL에서 기존 테이블의 원하는 위치에 새로운 열을 추가하려면 ALTER TABLE 문과 함께 AFTER 절을 사용하면 됩니다. 이 방법을 사용하면 컬럼 순서를 직접 지정할 수 있어 테이블 구조를 더 깔끔하게 관리할 수 있습니다.

기본 문법

ALTER TABLE yourTableName
ADD COLUMN yourColumnName data type AFTER yourExistingColumnName;

예제 테이블 생성하기

먼저 예제에 사용할 테이블을 만들어 보겠습니다. 아래 쿼리는 세 개의 컬럼을 가진 테이블을 생성합니다.

mysql> create table changeColumnPosition
-> (
-> Id_Position1 int,
-> Name_Position2 varchar(100),
-> Address_Position4 varchar(200)
-> );
Query OK, 0 rows affected (0.53 sec)

테이블 구조 확인하기

테이블이 정상적으로 생성되었는지 확인하려면 DESC 명령어를 사용합니다.

desc yourTableName;

생성한 테이블의 구조를 확인해 보겠습니다.

mysql> desc changeColumnPosition;

실행 결과는 다음과 같습니다.

+-------------------+--------------+------+-----+---------+-------+
| Field             | Type         | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+-------+
| Id_Position1      | int(11)      | YES  |     | NULL    |       |
| Name_Position2    | varchar(100) | YES  |     | NULL    |       |
| Address_Position4 | varchar(200) | YES  |     | NULL    |       |
+-------------------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

현재 테이블에는 세 개의 컬럼이 있습니다. 여기서 Name_Position2 컬럼 바로 뒤에 새로운 컬럼을 추가해 보겠습니다.

AFTER 절로 특정 위치에 컬럼 추가하기

아래와 같이 AFTER 절 뒤에 기준이 될 기존 컬럼명을 지정하면, 해당 컬럼 다음 위치에 새 컬럼이 삽입됩니다.

mysql> alter table changeColumnPosition
-> add Age_Position3 int after Name_Position2;
Query OK, 0 rows affected (1.34 sec)
Records: 0 Duplicates: 0 Warnings: 0

Age_Position3 컬럼이 성공적으로 추가되었습니다. 변경 사항이 제대로 적용되었는지 다시 한번 테이블 구조를 확인해 보겠습니다.

mysql> desc changeColumnPosition;

실행 결과는 다음과 같습니다.

+-------------------+--------------+------+-----+---------+-------+
| Field             | Type         | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+-------+
| Id_Position1      | int(11)      | YES  |     | NULL    |       |
| Name_Position2    | varchar(100) | YES  |     | NULL    |       |
| Age_Position3     | int(11)      | YES  |     | NULL    |       |
| Address_Position4 | varchar(200) | YES  |     | NULL    |       |
+-------------------+--------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

출력 결과를 보면 Age_Position3 컬럼이 Name_Position2 바로 뒤, 그리고 Address_Position4 앞에 정확히 삽입된 것을 확인할 수 있습니다.

참고 사항

만약 새 컬럼을 테이블의 맨 첫 번째 위치에 추가하고 싶다면 AFTER 대신 FIRST 키워드를 사용하면 됩니다. 또한 AFTER 절을 생략하면 새 컬럼은 항상 테이블의 마지막 위치에 추가됩니다.