MySQL新增字段报错:ERROR 1118 – Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535.
错误信息
ERROR 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