[英]Confusing error regarding mysql table creation
这是我用来创建表的SQL行:
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(255),
surname VARCHAR(255),
email VARCHAR(255) UNIQUE,
username VARCHAR(255) UNIQUE,
passwordHash CHAR(60),
admin BIT
)
应该非常通用,但是,我收到错误消息“指定的密钥太长;最大密钥长度为767字节”
哪个让我想知道,什么钥匙太长? 最长的应该是255B,不是吗?
这取决于您的服务器默认编码。 例如,在UTF-8中,每个字符使用三个字节。
问题来自VARCHAR(255)列上的“ UNIQUE”约束。
在这里试试这个:
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
firstname VARCHAR(255),
surname VARCHAR(255),
email VARCHAR(255) UNIQUE,
username VARCHAR(255) UNIQUE,
passwordHash CHAR(60),
admin BIT,
PRIMARY KEY (id),
CONSTRAINT user_info UNIQUE(email,username)
);
我认为这会工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.