MariaDB는 255자의 고유 인덱스를 허용합니까?
이 에러는 10.0.29-MariaDB-0ubuntu0에서 반복적으로 발생합니다.16.04.1 Ubuntu 16.04
ERROR 1071(42000) 행: 지정된 키가 너무 깁니다. 최대 키 길이는 767바이트입니다.
타겟의 라인은, 통상은 다음과 같습니다.
name VARCHAR(255) NOT NULL UNIQUE,
VARCHAR(63)로 변경하면 에러가 해소됩니다.이것은 MariaDB의 버그입니까?
이 오류를 해결하려면 다음 중 하나를 수행합니다.
회피책: 다음 중 하나를 수행합니다.
- 767이 아닌 3072바이트 제한에 대해 5.7.7(또는 그 이후)로 업그레이드
- 바꾸다
255로.191에서VARCHAR(값이 너무 길지 않다는 것을 확인) ALTER .. CONVERT TO utf8--하지만, 이것은 이모지와 일부 중국인은 허용하지 않습니다.- 프리픽스 인덱스 사용(무작위 권장)
- 재구성(5.6.3~5.7.6의 경우) (아래)
5.6.3 또는 5.5.14의 재설정:
SET GLOBAL innodb_file_format=Barracuda;
SET GLOBAL innodb_file_per_table=1;
SET GLOBAL innodb_large_prefix=1;
logout & login (to get the global values);
ALTER TABLE tbl ROW_FORMAT=DYNAMIC; (or COMPRESSED)
(버전 번호는 Oracle의 MySQL을 기반으로 합니다.MariaDB 버전 번호는 이 문제에 대해 다릅니다.)
승인된 답변에 대한 후속 조치 - 가장 쉬운 솔루션을 찾은 UTF8로 변경하려면 테이블을 작성할 때 MariaDb에서 다음 행을 사용하십시오.
name varchar(255) CHARACTER SET 'utf8' UNIQUE NOT NULL,
언급URL : https://stackoverflow.com/questions/43483129/does-mariadb-allow-255-character-unique-indexes
'programing' 카테고리의 다른 글
| 플라스크 요청 URL의 다른 부분은 어떻게 얻을 수 있나요? (0) | 2022.11.11 |
|---|---|
| block vs focusout -- 실제 차이는? (0) | 2022.11.10 |
| Vue 경로가 확인되기 전에 Vuex 액세스 (0) | 2022.11.10 |
| 왜 텍스트 영역이 신비로운 공백으로 채워지는가? (0) | 2022.11.10 |
| 판다의 문서 재샘플링 (0) | 2022.11.10 |