1071 -Specified key was too long; max key length is 767 bytes

执行下面语句报1071 -Specified key was too long; max key length is 767 bytes

CREATE table person(
pid int not null UNIQUE,
firstName VARCHAR(255) NOT NULL,
lastName VARCHAR(255) NOT NULL  UNIQUE,
address VARCHAR(255)
)

这是因为数据库表采用utf8编码,其中varchar(255)的column进行了唯一键索引而mysql默认情况下单个列的索引不能超过767位(不同版本可能存在差异)

于是utf8字符编码下,255*3 byte 超过限制,就报以上的错误了

相关推荐