본문 바로가기
MySql

MySQL Mysql :: Error : 지정된 키가 너무 깁니다. 최대 키 길이는 767 바이트입니다. CREATE INDEX

by 베이스 공부 2020. 12. 17.
반응형

저는 rails 2.3.5 응용 프로그램을 사용하고 있습니다. 마녀에는이 분야가 있습니다.

t.string   "trip_cities",             :limit => 256

그리고이 색인

add_index "bookings", ["trip_cities"], :name => "trip_cities"

실행하려고 할 때 :

bundle exec rake db:test:load

이 오류가 발생합니다. Mysql :: Error : Specified key was too long; 최대 키 길이는 767 바이트입니다. CREATE INDEX 'trip_cities'ON 'bookings'( 'trip_cities') 이 문제를 해결하는 방법을 모릅니다.

 

해결 방법

 

기본 데이터 정렬이 UTF8 문자 집합을 사용하는 것처럼 들립니다.

MySQL은 키 길이를 문자가 아닌 바이트로 제한합니다. MySQL이 사용하는 UTF8 구현은 문자 당 3 바이트를 허용하므로 UTF8 열에있는 키의 최대 길이는 문자로 된 키 길이의 3 배입니다 (명시 적으로 지정되지 않은 경우 키 길이는 필드의 전체 길이 임).

이 경우 최대 키 길이는 256 * 3 이며 768 입니다. 키 길이를 제한하거나 열의 데이터 정렬을 변경해야합니다.

 

참조 페이지 https://stackoverflow.com/questions/19940642

 

 

반응형

댓글