MariaDB 가져오기 최대 키 길이
현재 DB를 다른 서버로 옮기는 중인데 문제가 발생했습니다.우리의 데이터베이스는 상당히 크고 PphpMyAdmin을 사용하여 새로운 MariaDB 서버로 가져오기를 원할 때 사용됩니다.오류 코드가 발생하여 해결 방법을 알 수 없습니다.결과가 독일어이므로 죄송하지만 기본적으로 키가 너무 깁니다. 최대 키 길이는 767입니다.
MariaDB 버전: MariaDB-10.1.48 서버 버전: Ubuntu 18.04
서버 버전: Ubuntu 18.04
이 문제를 도와줄 수 있는 사람이 있다면 우리는 정말로 답변을 해주시면 감사하겠습니다!
예:
CREATE TABLE IF NOT EXISTS `accounts` (
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`owner` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`money` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
결과:
CREATE TABLE IF NOT EXISTS `accounts` (
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`owner` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`money` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
MySQL meldet: Dokumentation
#1071 - Schlüssel ist zu lang. Die maximale Schlüssellänge beträgt 767
제가 알기로는, 당신이 정의하는 것은name VARCHAR(255) COLLATE utf8mb4_unicode_ci NOT NULL
기본 키로 설정합니다.에 포함되어 있습니다.utf8mb4_unicode_ci
767바이트(또는 3072바이트)의 최대 인덱스 접두사 길이를 4로 나누어 191을 생성해야 합니다.
VARCHAR(191)을 사용하거나 기본 키로 사용하지 않습니다.
사용하다
SET GLOBAL innodb_default_row_format='dynamic';
스크립트에서 또는 my.ini에서 이 매개 변수를 수정합니다.
innodb-default-row-format = dynamic
이 변경을 통해 최대 3072바이트의 열에 대한 인덱스를 만들 수 있습니다.
언급URL : https://stackoverflow.com/questions/72102268/mariadb-import-maximum-key-length
'programing' 카테고리의 다른 글
csv 파일의 열 크기를 설정하는 방법은 무엇입니까? (0) | 2023.06.09 |
---|---|
TypeScript에서 연산자를 사용하는 이유는 무엇입니까? (0) | 2023.06.09 |
변수를 십진수로 선언 (0) | 2023.06.09 |
4 JOIN에서 1개의 테이블을 피벗해야 합니다. (0) | 2023.06.09 |
열 레이블을 변경하시겠습니까? 예: 열 "A"를 열 "이름"으로 변경합니다. (0) | 2023.06.09 |