반응형
마리아DB는 키 길이 없이 BLOB 열에 색인을 작성할 수 있습니까?
MariaDB의 두 인스턴스에 대해 동일한 문을 실행했을 때 하나는 오류가 발생했고 다른 하나는 오류가 발생하지 않았습니다.
내가 실행한 성명은 다음과 같습니다.
CREATE TABLE `session_tokens` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) unsigned NOT NULL,
`token` blob NOT NULL,
`inserted_at` datetime(6) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `session_tokens_token_index` (`token`) USING HASH,
KEY `session_tokens_user_id_index` (`user_id`),
CONSTRAINT `session_tokens_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;
CREATE TABLE `users` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`login_name` varchar(255) NOT NULL,
`hashed_password` varchar(255) NOT NULL,
`inserted_at` datetime(6) NOT NULL,
`updated_at` datetime(6) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `users_login_name_index` (`login_name`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4;
표시되는 오류 메시지:
ERROR 1170 (42000): BLOB/TEXT column 'token' used in key specification without a key length
두 인스턴스의 버전은 동일합니다.
mariadb Ver 15.1 Distrib 10.3.29-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
오류가 발생한 인스턴스의 OS는 Google Cloud Platform에서 실행되는 Ubuntu 20.04.2 LTS입니다.다른 인스턴스의 OS는 로컬 도커에서 실행되는 데비안 GNU/리눅스 10(버스터)입니다.
이미 논의된 바에 따르면 오류가 발생한 것은 맞는 것 같습니다.
왜 이런 차이가 발생하는지에 대한 단서가 있으면 알려주시기 바랍니다.
언급URL : https://stackoverflow.com/questions/68539582/can-mariadb-index-on-blob-column-without-a-key-length-or-not
반응형
'programing' 카테고리의 다른 글
액션바의 크기는 픽셀 단위로 어떻게 됩니까? (0) | 2023.09.13 |
---|---|
Wordpress 플러그인 설치 실패 (0) | 2023.09.13 |
.htaccess, mod_https 및 기본 인증 (0) | 2023.09.13 |
C의 Const 배열 (0) | 2023.09.13 |
wp_get_attachment_image에 속성 추가 (0) | 2023.09.13 |