mysql如何修复指定密钥过长的错误?

ssm49v7z  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(352)

查询:

CREATE UNIQUE INDEX `index_users_on_email_and_encrypted_password`  ON `users` (`email`, `encrypted_password`)

错误:

14:28:47    CREATE UNIQUE INDEX `index_users_on_email_and_encrypted_password`  ON `users` (`email`, `encrypted_password`)   Error Code: 1071. Specified key was too long; max key length is 767 bytes   0.00048 sec

有谁能帮我解决这个问题吗。我检查了各种解决方案,但都不起作用。

wlsrxk51

wlsrxk511#

基于您的加密和列长度
索引中的条目可能是
255 x 2 x 4=2040年
... 您应该减小大小(255个字符的密码似乎太长,电子邮件也一样),例如:
密码(48)电子邮件(128)

(128 + 48 ) * 4  =  704

如果不能用新的列长度重新创建表,可以通过这种方式更改列的字符长度
table必须是空的

ALTER TABLE users  MODIFY email VARCHAR(128);
 ALTER TABLE users  MODIFY encrypted_password VARCHAR(48);

相关问题