MySQL新增字段报错:ERROR 1118 -- Row size too large. The maximum row size for the used table type


错误信息

1118 - 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

错误原因

MySQL建表时有一个单行最大限制长度限定:一张表中所有字段设置的字节数总和不大于65535字节

注意点一:单个字段大小超过65535转换为text
注意点二:其余字段总和不超过65535字节(不包括BLOB/TEXT)
注意点三:数据库使用UTF-8编码,一个字符=三个字节大小
报错举例:数据库存在10个varchar字段,每个大小为3000 则数据库单行目前计算长度为 3000 * 10 * 3 = 90000 > 65535 则

解决办法:将数据库表大字段类型设置为TEXT,或者将部分可以减小长度的长度调小至总和小于65535