데이터베이스/MariaDB

[MariaDB] Add Column(컬럼 추가) - FIRST, AFTER 옵션 사용

yhtragramming 2021. 9. 28. 14:50

 

MariaDB를 사용하여 개인 프로젝트를 진행하다가, 이미 생성되어 있는 테이블에 컬럼을 추가해야 할 일이 생겼다.

MariaDB도 컬럼을 추가하는 SQL은 일반적인 데이터베이스에 사용하는 DCL과 다를 바가 없다.

ALTER TABLE 테이블명 ADD COLUMN 컬럼명 데이터타입

 

하지만 다른 DBMS(Oracle, MS-SQL...)처럼, 이미 생성되어 있는 테이블에 컬럼을 추가할 때는 기본적으로 가장 마지막 위치에 추가된다는 점.

 

이 말이 무엇이냐 하면...

 

가령 어떤 테이블에 A~C 컬럼이 있는데, D라는 신규 컬럼을 추가한다면 당연히 C 컬럼 뒤에 추가된다는 이야기다.

하지만 이미 추가된 컬럼들 사이에 신규 컬럼을 넣고 싶을 때가 분명 있었다. 이는 다른 DBMS에서도 마찬가지.

MariaDB에서는 'ADD COLUMN' DCL에 FIRST/AFTER 옵션을 지원하여, DBA 혹은 개발자가 원하는 위치에 컬럼을 추가할 수 있다.

 

예를 들어, 'COLUMN_1'이라는 컬럼 하나를 갖고 있는 테이블 'TB_TEMP_TABLE'이 있다고 가정해 본다. 이 테이블의 원하는 위치에 컬럼을 추가해 본다. 단, 추가되는 컬럼의 데이터 타입은 편의상 'VARCHAR(100)'로 통일한다.

 

1. 가장 첫 번째에 추가(FIRST)

ALTER TABLE 테이블명 ADD COLUMN 컬럼명 데이터타입 FIRST
ALTER TABLE TB_TEMP_TABLE ADD COLUMN COLUMN_2 VARCHAR(100) FIRST

 

2. 특정 컬럼 뒤에 추가(AFTER)

ALTER TABLE 테이블명 ADD COLUMN 컬럼명 데이터타입 AFTER 컬럼명
ALTER TABLE TB_TEMP_TABLE ADD COLUMN COLUMN_3 VARCHAR(100) AFTER COLUMN_1

 

가장 간단하면서도 유용한 컬럼의 순서를 지정하여 추가하는 방법.

 

테이블을 설계했을 때는 완벽하다고 생각했는데, 막상 개발을 하다 보니 생각지도 못한 구멍들이 하나둘씩 보인다.

MariaDB의 FIRST/AFTER 옵션 덕에, 잘못 생성한 테이블을 drop 하고 다시 생성하는 수고로움을 덜 수 있었다.

 

지금까지 MariaDB의 ADD COLUMN, 그중에서도 컬럼의 순서를 지정하여 추가하는 FIRST/AFTER 옵션에 대해 알아보았다.

 

감사합니다 : )