mysql创建表失败怎么回事_MySQL创建表失败的问题-阿里云开发者社区

当尝试在MySQL中创建表时遇到1118错误,提示行大小超过8126字节。问题在于InnoDB存储引擎的限制,即使总字符数未达到65535。解决方案包括:1) 改变存储引擎为MyISAM;2) 使用动态或压缩行格式;3) 检查字符集和ROW_FORMAT设置;4) 考虑表结构拆分,减少单表字段数量。关闭innodb_strict_mode也可避免错误,但可能导致其他问题。
摘要由CSDN通过智能技术生成

今天有一个朋友问我一个MySQL的建表问题,问题的现象是创建表失败,根据他的反馈,问题比较奇怪,

CREATE TABLE XXX

..此处省略260多个字段

`xxxxIsAllowIn` varchar(4) COLLATE utf8_bin DEFAULT NULL COMMENT 'xx是否准入(是,否)',

`xxxxIsAllowIn` varchar(30) COLLATE utf8_bin DEFAULT NULL COMMENT '理财-准入',

PRIMARY KEY (`SERIALNO`),

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='???????”3èˉ·?????ˉ';

是的,你没有看错,还有乱码,根据朋友反馈的现象是在生产环境可以创建成功,但是测试环境创建失败。

报错信息为:

ERROR 1118 (42000): Row size too large (> 8126). Changing some

columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or

ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of

768 bytes is stored inline.

我把文本拷贝到本地,想复现,结果因为乱码直接执行失败,对于这种情况,还是同事帮我做了下问题过滤,采用如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值