环境:
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配置影响的?
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配置影响的?
varchar加起来的字节不能超过65535
恩,我是这样理解的。另外我发现,之前创建存储过程把含中文的字串作为OUT输出老不成功,干脆直接写到会话变量@a中,在
select @a,就OK了。