ROW SIZE TOO LARGE创建表字段总长度超界问题

gungod 2011-04-20 10:47:04
环境:
A机:MYQL5.0.83,默认配置;
B机:MYQL5.0.83,配置:“服务器”,“最佳字符集支持”;

创表脚本如下:

use test;
DROP TABLE IF EXISTS tb1;
CREATE TABLE tb1(
FID bigint NOT NULL AUTO_INCREMENT,
DailyDate datetime NOT NULL,
MAXT numeric(18, 1) NULL,
MINT numeric(18, 1) NULL,
DayR numeric(18, 1) NULL,
DayS numeric(18, 1) NULL,
DailyC1 VARCHAR(8192) NULL,
DailyC2 VARCHAR(8192) NULL,
DailyC3 VARCHAR(8192) NULL,
InDateTime datetime NOT NULL,
Opid int NOT NULL,
UpdateDateTime datetime NOT NULL,
Upid int NOT NULL,
AutoFlag int NULL DEFAULT 1,
PRIMARY KEY(FID,DailyDate) );


在我自己的开发环境下(A机),运行没有任何错误提示!

但该脚本放一台测试机(B机)上执行时,就出错了,
提示如下:
“SQL ERROR(1118):ROW SIZE TOO LARGE.THE maximum row size for the used table type not counting blobs .in 65535. You have to change some columns to TEXT or Blobs”

按提示的说明是,我的理解是字段类型总长度超界了,把VARCHAR(8192)修改成VARCHAR(4096)就通过了,
这是怎么回事?

MYSQL配置影响的?
...全文
846 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
rucypli 2011-04-20
  • 打赏
  • 举报
回复
Although InnoDB supports row sizes larger than 65535 internally, you cannot define a row containing VARBINARY or VARCHAR columns with a combined size larger than 65535


varchar加起来的字节不能超过65535
ACMAIN_CHM 2011-04-20
  • 打赏
  • 举报
回复
检查你的字符集设置。 不同字符集下VARCHAR(100)所需要字节是不同的。
gungod 2011-04-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 rucypli 的回复:]
Although InnoDB supports row sizes larger than 65535 internally, you cannot define a row containing VARBINARY or VARCHAR columns with a combined size larger than 65535

varchar加起来的字节不能超过65535
[/Quote]

恩,我是这样理解的。

另外我发现,之前创建存储过程把含中文的字串作为OUT输出老不成功,干脆直接写到会话变量@a中,在
select @a,就OK了。

56,685

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧