운영중인 DB의 컬럼의 크기가 늘어나야 하는 요구사항이 생겼다.
기존에 VARCHAR(50)이었는데 이제 128 바이트를 넣어야 한다.
단순히 아래와 같은 SQL을 생각하고 개발 환경에서 실행을 했는데,,,
ALTER TABLE MY_HISTORY MODIFY MY_ID VARCHAR(128)
아래와 같은 에러가 난다.
[HY000][1025] Error on rename of './my/MY_HISTORY' to './my/#sql2-1f71-742fba' (errno: 155 - The table does not exist in engine).
AWS상에서 돌아가는 Aurora MySQL 엔진이라 들었던 생각은 아래와 같다.
1. Aurora MySQL은 MySQL과 SQL이 다른가?
2. 혹시 읽기 전용 클러스트에 명령을 날린건가?
하나씩 확인을 해보니 둘 다 틀렸다.
인터넷에서 검색을 해보니 다음과 같은 내용이 검색되었다.
Can't remove indexed column, ERROR 1025 (HY000): Error on rename of .. to .. (errno: 150)
결국 인덱싱이 걸려있는 컬럼에 대해서는 에러가 발생한다는 것이다.
해결책
1. 인덱싱을 지운다.
2. 컬럼 속성을 변경한다.
3. 인덱싱을 다시 만든다.
drop index MY_HISTORY_MY_ID_index on MY_HISTORY;
ALTER TABLE MY_HISTORY MODIFY MY_ID VARCHAR(128) null comment '나의 고유번호';
create index MY_HISTORY_MY_ID_index on MY_HISTORY (MY_ID);
'DB > MySQL,MariaDB' 카테고리의 다른 글
[MySql] varchar 5라면 한글은 몇 글자까지 들어갈 수 있을까? (0) | 2019.12.12 |
---|---|
[MySQL] docker에 CLI로 접속하기 (0) | 2018.11.21 |