본문 바로가기

DB/MySQL,MariaDB

Aurora MySQL - alter table modify column 에러

 

운영중인 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)

 

Can't remove indexed column, ERROR 1025 (HY000): Error on rename of .. to .. (errno: 150)

I am having trouble removing a column which is indexed. I dont really understand what is happening as I usually have no problem deleting indexes. When I try to delete the column or index I get the

stackoverflow.com

결국 인덱싱이 걸려있는 컬럼에 대해서는 에러가 발생한다는 것이다.

 

해결책

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);