相关疑难解决方法(0)

MySQL:错误代码:1118行大小太大(> 8126).将某些列更改为TEXT或BLOB

我想创建一个325列的表:

CREATE TABLE NAMESCHEMA.NAMETABLE 
(   
      ROW_ID TEXT NOT NULL ,        //this is the primary key

324 column of these types:
      CHAR(1), 
      DATE, 
      DECIMAL(10,0), 
      DECIMAL(10,7), 
      TEXT, 
      LONG,

) ROW_FORMAT=COMPRESSED;
Run Code Online (Sandbox Code Playgroud)

我用TEXT替换了所有VARCHAR,我在MySQL的my.ini文件中添加了Barracuda,这是添加的属性:

innodb_file_per_table=1
innodb_file_format=Barracuda
innodb_file_format_check = ON
Run Code Online (Sandbox Code Playgroud)

但我仍然有这个错误:

Error Code: 1118
 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
Run Code Online (Sandbox Code Playgroud)

编辑:我无法更改数据库的结构,因为它是遗留的应用程序/系统/数据库.创建一个新表,它是遗留数据库的导出.

编辑2:我写的这个问题与其他人类似,但内部有一些我在互联网上找到的解决方案,如VARCHAR和Barracuda,但我仍然有这个问题所以我决定打开一个新的问题已经内部的经典答案,看看是否有人有其他答案

mysql sql create-table

50
推荐指数
14
解决办法
12万
查看次数

Innodb 页面大小设置

在 innodb 中,页面大小被称为默认 16kb。如何将页面大小设置为 8kb?在源编译步骤中是否有设置选项?

mysql innodb

4
推荐指数
1
解决办法
5613
查看次数

添加appcenter应用程序时行大小太大(> 8126)异常

我正在尝试在Windows 8.1上的Websphere Liberty服务器上部署iOS的worklight应用程序中心.但是当我尝试通过appcenter控制台添加IBMAppCenter.ipa时,我在服务器日志中遇到异常.

Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline. {prepstmnt 1563792952 INSERT INTO APPLICATION_STORAGE (CONTENT, AP_FK) VALUES (?, ?) [params=(InputStream) java.io.ByteArrayInputStream@5987916, (null) null]} [code=1118, state=42000]
Run Code Online (Sandbox Code Playgroud)

以下是重现我的问题的方案:

  1. 通过mysql社区安装程序安装mysql 5.6.2
  2. 安装Websphere Liberty应用程序服务器v8.5.5
  3. 安装Worklight Server v6.2
  4. 通过XCode生成IBMAppCenter.ipa
  5. 登录appcenterconsole并尝试添加应用程序

我尝试按照hjpotter92对"Mysql行大小太大"的更改限制的建议启用表APPLICATION_STORAGE的压缩,但没有任何运气.任何帮助将非常感激.

编辑

以下是APPLICATION_STORAGE表的定义,该表导致问题:

CREATE TABLE APPLICATION_STORAGE (ID INTEGER NOT NULL AUTO_INCREMENT, CONTENT LONGBLOB, AP_FK INTEGER, PRIMARY KEY (ID)) ENGINE …
Run Code Online (Sandbox Code Playgroud)

mysql worklight-appcenter ibm-mobilefirst

1
推荐指数
1
解决办法
4620
查看次数

行大小太大(> 8126)我可以将 InnoDB 更改为 MyISAM

我有这个错误:

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

为了解决这个问题,我可以将 InnoDB 更改为 MyISAM 吗?

mysql myisam innodb

1
推荐指数
1
解决办法
1223
查看次数