mysql 테이블 컬럼 사이즈 변경 오류
본문
안녕하세요.
아이디를 이메일로 사용하려고 mb_id가 들어있는 테이블의 mb_id 사이즈를 20->255로 변경하려고 하는데
이런 오류가 뜹니다.
https://www.popit.kr/mysql-index-column-size-too-large-error/
다른 글 보니 여기 처럼 하라고 해서 했는데
저도 이렇게 뜹니다ㅠㅠ
Unknown system variable 'innodb_large_prefix'
g5_member 테이블은 정상적으로 변경이 되었으나 다른 테이블은 오류가 뜨는데 왜그럴까요??
답변 3
회원테이블 인가요?
mb_1 ~ mb_10 중에서 사용하지않는 여분필드 몇개를 varchar(10) 정도로 줄이세요
키값이 잡혀있다보니 오류가 나는건데요
키값의 범위보다 크기때문에 오류가 발생되는거라 index 키값에서 제거후 적용해 주셔야 합니다.
mb_id가 왜 varchar(255)로 하려는지 모르겠네요.
g5_member 별로 index를 추가 하지 않았다면 이런 모습일 겁니다.
show index from g5_member;
+-----------+------------+----------------+--------------+-
| Table | Non_unique | Key_name | Seq_in_index | Column_name |
+-----------+------------+----------------+--------------+-------
| g5_member | 0 | PRIMARY | 1 | mb_no |
| g5_member | 0 | mb_id | 1 | mb_id |
| g5_member | 1 | mb_today_login | 1 | mb_today_login |
| g5_member | 1 | mb_datetime | 1 | mb_datetime |
+-----------+------------+----------------+--------------+-
character set이 utfmb4라면
varchar(250) 미만으로 잡아야 합니다.
타당한 이유가 없다면 그대로 사용하시는 것을 추천합니다.