mysql报错:1118 - Row size too large

薄洪涛6年前数据库1151

前几天在建表的时候,有这么一个现象,因为我的表字段比较多(一个患者的体检表项目繁多,不要问我为什么不分表了),字段类型为varchar类型,结果保存的时候报了如下的错误

TIM截图20190329140339.png

原因:

MySQL在建表的时候有个限制:MySQL要求一个行的定义长度不能超过65535。具体的原因可以看:

http://dev.mysql.com/doc/refman/5.1/en/silent-column-changes.html

当建立新表时,会按照如下步骤进行检测:

1、若单个字段如果大于65535,则转换为TEXT,执行第二步;

2、单行最大限制为65535,这里不包括TEXT、BLOB,若超过,则报错;

解决这个错误的方法比较简单,把varchar改成text或者blob,甚至tinytext就可以了;

标签: mysql

相关文章

GROUP_CONCAT用法

GROUP_CONCAT用法

应用场景表A有一条数据,表B有3条数据,通过  A left join B 可以展示出3条数据,如图但是我想让name在一行显示SELECT A.id, GROUP_CONCAT(B.n...

mysql几种常见的连接方式

mysql几种常见的连接方式

内连接(inner join)从两张表中取出所有记录做笛卡尔积;利用匹配条件进行匹配;如果内连接没有条件,那么其实就是交叉连接,这是我们应该避免的交叉连接从两张表中取出所有记录做笛卡尔积,所有的结果都...

CREATE TABLE 表名 AS SELECT 语句用法详解

新表不存在,创建新表1.创建新表并且携带数据create table new_table    as select *&...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。