CS/데이터베이스(DB)

MySQL 테이블 컬럼명 변경 방법 & 오류나는 경우 해결법

hyunah 2021. 7. 15. 15:25

MySQL 테이블 컬럼명 변경시 오류나는 경우 해결법



MySQL 테이블 컬럼명 변경이라고 치면 나오는 방법은 대개 아래와 같다.

alter table 테이블명 change 기존컬럼명 새로운컬럼명 새로운컬럼타입;






그런데 이 방법이 오류가 나는 경우가 있다.내가 접했던 오류는 ALGORITHM=COPY is not supported. Reason: Columns participating in a foreign key are renamed. Try ALGORITHM=INPLACE이다. 바꾸려는 컬럼이 하필 pk라 다른 테이블에서 fk로 쓰고 있던 것이 패착이었다.






저 오류를 그대로 치니까 제일 먼저 나온 stack overflow에서 내놓은 해결법은 그냥 primary key랑 foreign key 드랍하고 컬럼명 바꾼 다음 다시 등록해라! 였는데



외래키로 등록해 놓은 테이블이 3개는 되어서 별로 그러고 싶지 않았다. 5년 전 글이니까 분명 그 사이에 더 좋은 방법이 생겼을 것이라 믿었다. 더 찾아본 결과 컬럼명을 바꾸는 다른 방법이 있다는 걸 알게 되었다.






alter table 테이블명 rename column 기존컬럼명 to 새로운컬럼명 

 

이 방법 쓰면 primary key랑 foreign key를 드랍했다가 다시 등록하는 일을 거치지 않고 깔끔하게 이름만 바꿀 수 있다!