?給一個客戶做模板定制,客戶的功能要求很……要建立N多的字段,在一個模型表中!那么問題來了,建立大概165個字段的時候突然報錯!如下:
Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
alter table ***_ecms_infoclass_article add zz_ceshi text not null,add z_ceshi varchar(255) not null,add qz_ceshi varchar(255) not null,add save_ceshi varchar(10) not null;
根據字面意思,似乎是超出表長了。看客戶服務器環境是5.0MYSQL庫,于是跑谷歌傻傻的搜索去了,有大神說去把字段改成text或者blobs就行了(錯誤的字面意思),有說是5.5版本以后的MYSQL就可以了。于是抱著不死心的態度,給客戶做MYSQL版本升級工作,升級一切正常,但是,問題依舊!
于是只能去找出錯的表看看啦:
***_ecms_infoclass_article表,帝國CMS數據模型字段功能表,每建立一個字段(比如pan_s),那么這里就會響相應的生成三個輔助字段比如下圖(PHPMYADMIN工具打開)
OK!我們按照錯誤提示,把其他三個不是text的字段類型修改為text:
果然。好了。
好吧,告一段路,似乎是UTF8編碼的數據庫,字段長度*3 導致超出表長了!具體為什么,我回頭巴拉巴拉資料去,再給大家后續報道。解決問題就行了唄。過程不重要……(好吧我偷懶了)!知道具體原因的小伙伴,歡迎在下面評論留言告訴墨魚一下。謝過!
?