小编ham*_*oun的帖子

MySQL:行大小太大 (> 8126)

我有一个表,里面有 300 列。每列最多为255个字节(也就是这个企业的理由)。

当我尝试使用创建它时VARCHAR(255),我超过了最大字节数的限制。所以我创建的是使用 300 个TEXT字段。然后当我尝试插入数据时,出现错误:

行大小太大 (> 8126)。
将某些列更改为 TEXT 或 BLOB 或使用 ROW_FORMAT=DYNAMIC 或 ROW_FORMAT=COMPRESSED 可能会有所帮助。
在当前行格式中,内联存储 768 字节的 BLOB 前缀。

阅读完此内容后,我尝试通过指定ROW_FORMAT=COMPRESSED. 现在的问题似乎是,当我尝试使用该格式创建表时,出现相同的错误。

CREATE TABLE T_ObjLarge__c (Id VARCHAR(18), Name VARCHAR(80),
ObjLarge_Field_1__c TEXT,
ObjLarge_Field_2__c TEXT,
...
ObjLarge_Field_300__c TEXT
) ROW_FORMAT=COMPRESSED ;
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

行大小太大 (> 8126)。
将某些列更改为 TEXT 或 BLOB 可能会有所帮助。
在当前行格式中,内联存储 0 字节的 BLOB 前缀。

我在 Linux mint 上使用 MySQL 5.5.31。没有索引。我试过DYNAMIC格式;它的行为方式相同。

的输出SHOW GLOBAL VARIABLES LIKE 'innodb_file_per_table';

+--------------------------+-----------+ …
Run Code Online (Sandbox Code Playgroud)

mysql innodb linux mysql-5.5

7
推荐指数
1
解决办法
3万
查看次数

标签 统计

innodb ×1

linux ×1

mysql ×1

mysql-5.5 ×1