[MySQL 错误]ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not解决(二)

2014-11-23 20:25:40 · 作者: · 浏览: 46
. A column uses one length byte if values require no more than 255 bytes, two length bytes if values may require more than 255 bytes.
原来有N有255这样一个坎啊,超过了N的意义就不一样了。
后续测试1 ,朋友木木说是字符集的问题,那么我就执行之前设置下字符集,不过还是报错,但是我在SQLyog工具的窗口里面执行是成功(工具里面自动转变成mediumtext类型了)。
mysql> set names utf8;  
Query OK, 0 rows affected (0.00 sec)  
  
  
mysql> DROP TABLE ttt;  
ERROR 1051 (42S02): Unknown table 'test.ttt'  
mysql> CREATE TABLE `ttt` (  
    -> `id` DOUBLE ,  
    -> `select_type` VARCHAR (57),  
    -> `table` VARCHAR (192),  
    -> `type` VARCHAR (65535),  
    -> `key` VARCHAR(20),  
    -> `possible_keys` VARCHAR (100),  
    -> `key_len`  VARCHAR (65535),  
    -> `ref` VARCHAR (11),  
    -> `rows` DOUBLE ,  
    -> `Extra` VARCHAR (765)  
    -> );   
ERROR 1074 (42000): Column length too big for column 'type' (max = 21845); use BLOB or TEXT instead  
mysql>
set names gbk; Query OK, 0 rows affected (0.00 sec) mysql> DROP TABLE ttt; ERROR 1051 (42S02): Unknown table 'test.ttt' mysql> CREATE TABLE `ttt` ( -> `id` DOUBLE , -> `select_type` VARCHAR (57), -> `table` VARCHAR (192), -> `type` VARCHAR (65535), -> `key` VARCHAR(20), -> `possible_keys` VARCHAR (100), -> `key_len` VARCHAR (65535), -> `ref` VARCHAR (11), -> `rows` DOUBLE , -> `Extra` VARCHAR (765) -> ); ERROR 1074 (42000): Column length too big for column 'type' (max = 21845); use BLOB or TEXT instead mysql>

最后总结:这个可能是超过 一个表 关于 非十六进制字段 64k的限制了。
上官网:http://dev.mysql.com/doc/refman/5.5/en/column-count-limit.html:
Every table (regardless of storage engine) has a maximum row size of 65,535 bytes. Storage engines may place additional constraints on this limit, reducing the effective maximum row size.
65,535所说明的是针对的是整个表的非大字段类型的字段的bytes总合。