我了解InnoDB索引的最大长度为767字节。
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(254) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
.....
`token` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`rank` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `user_token_index` (`token`),
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
我想在我的电子邮件上创建一个索引。
alter table agent add UNIQUE index idx_on_email (email);
但是收到了以下错误信息:
指定的键太长,最大键长度为767字节。
但是令牌列的长度只有128字节,电子邮件是254个字节,未超过767个字节。希望有人能帮助我!提前感谢您!
CHARACTER SET utf8mb4
,那么需要乘以4才能得到字节数。 - Rick James