Index column size too large. The maximum column size is 767 bytes.

yunguopiaoyu發表於2018-09-04

在MySQL資料庫上建立索引時,出現錯誤Index column size too large. The maximum column size is 767 bytes.
由於 MySQL Innodb 引擎表索引欄位長度的限制為 767 位元組,因此對於多位元組字符集的大欄位(或者多欄位組合索引),建立索引會出現上面的錯誤。

解決方案

Step 1 :設定引數 innodb_large_prefix 為 ON

set global innodb_file_format = BARRACUDA;
set global innodb_large_prefix = ON;

Step 2:建立表的時候指定表的 row format 格式為 Dynamic 或者 Compressed
create table tb_name
(
  ……
) 
ROW_FORMAT=DYNAMIC ENGINE=InnoDB  DEFAULT CHARSET=utf8;
Step 3:對於已經建立的表修改表的row_format
alter table <table_name> row_format=dynamic;
alter table <table_name> row_format=compressed;

經過上述步驟之後,再繼續建立索引就可以成功了。

alter table <table_name> add unique index(column_name);

相關文章