[英]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.