首页 > 数据库 >MySQL:SQL 错误 [1118] [42000]: Row size too large.

MySQL:SQL 错误 [1118] [42000]: Row size too large.

时间:2023-07-05 13:57:15浏览次数:56  
标签:TEXT SQL 42000 large Length MySQL 65535 size

1.场景:

今天在用MySQL建表的时候,报了一个错误;

SQL 错误 [1118] [42000]: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

2.原因:

从字面的意思理解就是所用表类型(不包括 BLOB)的最大行大小为 65535。您必须将某些列更改为TEXT或 BLOBs;

1.如果数据库编码为utf8mb4,表所有varchar字段总长度(Length):Length*4不能大于65535。

2.如果数据库编码为utf8,表所有varchar字段总长度(Length):Length*3不能大于65535。、

2.解决方案:

将建表SQL中varchar长度比较大(比如超过2000)的字段,类型修改为TEXT,避免总长度超过65535即可。

标签:TEXT,SQL,42000,large,Length,MySQL,65535,size
From: https://www.cnblogs.com/yellow3gold/p/17528297.html

相关文章

  • Mysql进阶篇(一)之存储引擎
    一.MySQL体系结构1.连接层最上层是一些客户端和链接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可......
  • MySQL-锁等待排查
    背景最近我们的登录系统在每个钟点的18分就会登录不进去,排查后发现有锁等待情况,周期地发生那么很大几率是自动任务了,为了找到为什么会锁等待,我们做了以下的排查排查过程--1.锁住的事务SELECT*FROMINFORMATION_SCHEMA.INNODB_LOCKS;--2.事务SELECT*FROMIN......
  • mysql中count(*)和found_rows()的区别
    count(*)和found_rows()都可以用来求查询记录的数量而count(*)往往单独使用,found_rows()却可以跟上前面一个查询,即select*fromtablelimit10;selectfound_rows();这样的总共可分为几个区别:1.count(*)查询的无论是否为空,都会计数,而found_rows()却不是......
  • MySQL Router 使用案例
    MySQLRouter通常会使用两个端口来处理读操作和写操作。要在Python中与MySQLRouter和MySQLReplicaSet搭配使用,并利用MySQLRouter的两个端口,您可以按照以下步骤进行配置:1.启动MySQLRouter:首先,启动MySQLRouter服务,并为读操作和写操作分别指定不同的端口。例如,您可以使用以下......
  • MySQL存储过程
    --存储过程delimiter$--声明结束符号CREATEPROCEDUREpro_test1()BEGINSELECT'HelloMySQL';END$delimiter;--声明结束符号CALLpro_test1();--调用存储过程DROPPROCEDUREpro_test1;--删除存储过程CREATEPROCEDUREpro_test1()BEGIN......
  • Nginx+Uwsgi+Django+Mysql部署项目
    第一章、准备工作第1节、创建项目目录准备好项目代码,将代码上传至myprojectmkdirmyproject第2节、安装python3cd/usr/local/mkdirPythonwgethttps://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgztar-zxvfPython-3.8.0.tgzmkdir/usr/local/Python/py3_p......
  • navicat添加触发器实现禁止删除指定表的记录(mysql)
     选中指定表,右键选择设计表 在定义那儿填写语句 BEGINdeclaremsgvarchar(255);setmsg="禁止删除操作";SIGNALSQLSTATE'HY000'SETMESSAGE_TEXT=msg;END......
  • MySQL中创建触发器需要执行哪些操作?
    什么是触发器触发器,就是一种特殊的存储过程。触发器和存储过程一样是一个能够完成特定功能、存储在数据库服务器上的SQL片段,但是触发器无需调用,当对数据库表中的数据执行DML操作时自动触发这个SQL片段的执行,无需手动调用。触发器的这种特性可以协助应用在数据库端确保数据的完整......
  • 搞定MySQL,都是干货
    MySQL数据库简介MySQL近两年一直稳居第二,随时有可能超过Oracle计晋升为第一名,因为MySQL的性能一直在被优化,同时安全机制也是逐渐成熟,更重要的是开源免费的。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高......
  • 关于mysql存储引擎、管理和维护概述
    数据库的存储引擎是数据库的底层软件组件,数据库管理系统使用数据库引擎进行增删查改的操作。mysql的核心就是数据库引擎。mysql5.7支持的存储引擎有innoDBMyISAMMemory可以通过showengines。InnoDB存储引擎:1.InnoDB给mysql提供了具有提交,回滚,崩溃恢复的功能的事务能力的安......