MySQL MyIsAm 存储引擎在创建索引的时候,索引键长度是有一个较为严格的长度限制的,所有索引键最大长度总和不能超过1000,而且不是实际数据长度的总和,而是索引键字段定义长度的总和。
比如:
create table identifier (
inode varchar(100) not null,
uri varchar(255),
host_inode varchar(255),
primary key (inode),
unique (uri, host_inode)
);
1.DB engine 是MyIsAm
2.字符集是 utf8 ,1个utf8=3bytes
3.最后就是 (100+255)*3>1000 所以报错
解决方案很多 ,修改DB engine 至 innodb,或者是更改字符集,或者是减小字段长度 皆可.
:)