天天看点

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

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