Database

[Maria/MySQL] 다중 칼럼 수정 ALTER 문

escaper101 2020. 10. 4. 11:34

SQL 예시 

위의 SQL로 다음 두 가지를 알 수 있다. 

1. 하나의 ALTER 문으로 하나 이상의 DDL을 수행할 수 있다. 

- 예시에서는 ADD COLUMN / CHANGE COLUMN을 함께 수행 

2. 특정 칼럼이 추가되기 전에 해당 칼럼을 바탕으로 다른 칼럼의 순서를 조정할 수 있다. 

- f_name이라는 칼럼이 추가되기도 전에 어떻게 l_name 칼럼의 순서를 f_name 칼럼의 다음으로 지정할 수 있을까? 

이는 MySQL은 ALTER 문을 순서대로 실행하기 때문이다. 버전에 따라 약간의 차이가 있지만 MySQL은 ALTER문을 수행할 때 ALTER문에서 참조하고 있는 테이블의 임시 테이블 복사본을 먼저 만들고 해당 임시 테이블을 ALTER 문의 순서에 따라 변경한다. 이 과정이 오류 없이 끝나면 마침내 본 테이블을 변경이 완료된 임시 테이블과 교체한다. 이와 같은 눈에 보이지 않는 과정이 ALTER 문 수행 시 빠르게 이루어 지기 때문에 특정 칼럼 추가 전에 해당 칼럼을 참조할 수 있다.