報錯原因:
如果使用的是utf8mb4,並且在長度超過191個字符的varchar列上有唯一索引,因爲utf8mb4需要比utf8或latin1更多的存儲空間。如果啓用
innodb_large_prefix(默認值),則對於使用DYNAMIC或COMPRESSED行格式的InnoDB表,索引鍵前綴限制爲3072
個字節。如果innodb_large_prefix被禁用
,則任何行格式的表的索引鍵前綴限制爲767
字節。
解決辦法
方法一、打開innodb_large_prefix
以允許索引中的較大列。
方法二、設置有唯一索引varchar列字符串長度爲191
注意
MySQL 5.7.7 默認啓用innodb_large_prefix,Innodb_large_prefix,在MySQL 5.7.7中已棄用,並將在未來版本中刪除。