21'C 흐림
서울 강남구
MySQL 에서 컬럼 코멘트만 깔끔하게 변경하는 방법은 없습니다. MODIFY 또는 CHANGE 로 전체 컬럼을 변경해야합니다.
컬럼타입 변경 예시
MODIFY 또는 CHANGE 를 이용해서 컬럼의 정의를 변경하려한다면, 데이터 타입을 포함한 모든 컬럼의 속성을 같이 넣어줘야 합니다.
기존 컬럼 정의에는 있는데 MODIFY(또는 CHANGE) 시에 포함되지 않았다면 해당 속성들은 사라집니다.
예를 들어 col1 컬럼이 INT UNSIGNED DEFAULT 1 COMMENT 'my column' 라고 정의되어 있었고 INT -> BIGINT 로 변경을 위해 아래와 같이 DDL 을 실행했다고 가정하겠습니다.
ALTER TABLE t1 MODIFY col1 BIGINT;
이 경우에 BIGINT 변경은 성공했지만 나머지 UNSIGNED, DEFAULT, COMMENT 의 속성은 사라집니다. 따라서 모든 컬럼 속성을 그대로 유지하려면 아래와 같이 DDL 구문에 모두 적어줘야합니다.
ALTER TABLE t1 MODIFY col1 BIGINT UNSIGNED DEFAULT 1 COMMENT 'my column';
주의사항
테이블 코멘트와 함께 변경하면 안됩니다.
각각 변경은 metadata 만 변경하기 때문에 금방 끝나지만 섞어서하면 낭패를 봅니다.
참고자료