首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MySQL 建表失败 ERROR 1118 的两个报错 65535 与 16318

MySQL 建表失败 ERROR 1118 的两个报错 65535 与 16318

作者头像
用户11737143
修改于 2026-10-08 10:22:22
修改于 2026-10-08 10:22:22
240
举报
概述
一次 SAP 大宽表迁移引发的血案:200+ 列的表结构搬到 MySQL 8.0,建表直接报错。这篇文章把 ERROR 1118 的两道计算口径、复现实验、严格模式的坑、以及三种解法一次讲透。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 0、结论先行
  • 1、问题背景
  • 2、两道关卡的计算口径(判断方式)
    • 2.1 第一关:Server 层声明总长(上限 65535)
    • 2.2 第二关:InnoDB 页内最坏占用(上限 = 页可用空间一半)
    • 2.3 两个必须搞懂的概念
  • 3、动手复现:400 列的表,两种报错都打出来
  • 4、关闭严格模式的代价:从"建不出来"变成"插不进去"
  • 5、TEXT 的"溢出"后门:同一份数据,VARCHAR 进不去,TEXT 能进
  • 6、解决方案与取舍
  • 7、一键体检:找出库里所有"埋雷表"
  • 8、一句话记法
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档