> 데이터 베이스 > MySQL 튜토리얼 > MySQL의 '키 길이 없이 키 사양에 사용된 BLOB/TEXT 열' 오류를 해결하는 방법은 무엇입니까?

MySQL의 '키 길이 없이 키 사양에 사용된 BLOB/TEXT 열' 오류를 해결하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2025-01-19 23:36:10
원래의
561명이 탐색했습니다.

How to Resolve MySQL's

MySQL의 BLOB/TEXT 키 사양 오류 문제 해결

BLOB 또는 TEXT 열이 포함된 MySQL 테이블에 기본 키나 인덱스를 정의하면 종종 다음 오류가 발생합니다.

<code>BLOB/TEXT column 'message_id' used in key specification without a key length</code>
로그인 후 복사

이 오류는 MySQL 인덱스에 고정 길이 데이터 유형이 필요하기 때문에 발생합니다. 가변 길이인 BLOB 및 TEXT 열은 인덱스 크기 결정을 위한 키 길이 사양이 필요합니다. 단, BLOB/TEXT에 대한 키 길이를 직접 지정하는 것은 지원되지 않습니다.

해결 전략:

이러한 제한 사항을 해결할 수 있는 방법은 다음과 같습니다.

  • 키/인덱스에서 BLOB/TEXT 제외: 가장 간단한 해결책은 기본 키 또는 인덱스 정의에서 BLOB 또는 TEXT 열을 제거하는 것입니다.
  • VARCHAR 열 활용: BLOB/TEXT를 VARCHAR 열로 바꾸고 최대 길이를 지정합니다. 중요한 점은 키와 호환되지 않는 SMALLTEXT로 자동 변환되는 것을 방지하기 위해 이 길이를 256자 미만으로 유지하는 것입니다.
  • 복합 키 사용: 단일 VARCHAR의 용량을 초과하는 고유 식별자의 경우 여러 열을 사용하여 복합 키를 생성하세요.

추가 고려사항:

'키 길이가 없는 키 지정' 오류는 BLOB/TEXT 열이 직접 관여하지 않아도 나타날 수도 있습니다. 이는 VARCHAR 키의 길이가 255자를 초과하여 SMALLTEXT로의 암시적 변환을 트리거하는 경우 발생합니다.

이를 방지하려면 키에 사용되는 모든 VARCHAR 열의 최대 길이가 255자 미만인지 확인하세요.

위 내용은 MySQL의 '키 길이 없이 키 사양에 사용된 BLOB/TEXT 열' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿