1. 程式人生 > >mysql建立索引報錯:Specified key 'idx_repair_project_id_claim_nos' was too long; max key length is 767 byte

mysql建立索引報錯:Specified key 'idx_repair_project_id_claim_nos' was too long; max key length is 767 byte

mysql建立索引報錯:Specified key ‘idx_repair_project_id_claim_nos’ was too long; max key length is 767 byte

今天在建立資料庫組合索引時報錯: mysql建立索引報錯:Specified key ‘idx_repair_project_id_claim_nos’ was too long; max key length is 767 byte 期初以為是索引名稱過長造成的,將索引名稱縮短還是報同樣的錯誤,最後通過查閱相關資料所知:mysql innodb儲存引擎預設支援的key最大長度為797bytes(MYISAM支援的最大長度為1000bytes),而我的資料庫字符集編碼採用的是utf8(一個字元為3位元組,utf8mp4一個字元為4位元組),所以支援的最大長度為797/3=255字元。 最後將組合索引改為單一索引就執行成功。

解決辦法: 1.將組合索引改為單一索引,前提是單一索引的字元長度小於等於255,如果單一索引字元長度還是大於255,則可以使用前置索引。 2.減小欄位的字元長度:varchar(255)->vrachar(100).