达梦数据库提示记录超长是什么缘由?

这是由于达梦里面一个表中全部的列(大字段除外)的长度加起来不能超过页大小的一半。
好比安装时页大小为8k,那么一行记录的长度除大字段外全部列加起来不能超过4k
select page(); --8192
create table test(c1 int,c2 varchar(2000),c3 varchar(2000)); --可建立成功
insert into test values(1,LPAD('a',2000),'a'); --未超过4k,能够插入成功
insert into test values(2,LPAD('a',2000),LPAD('a',2000)); --超过4k,报错:记录超长
update test set c3=LPAD('a',2000) where c1=1; --更新操做致使记录超长,报错数据库

初始化数据库实例的时候,要注意页大小的选择,上面的例子,能够选择页大小为16K。
select page(); --16384
create table test(c1 int,c2 varchar(2000),c3 varchar(2000)); --可建立成功
insert into test values(1,LPAD('a',2000),'a'); --未超过8k,能够插入成功
insert into test values(2,LPAD('a',2000),LPAD('a',2000)); ----未超过8k,能够插入成功
update test set c3=LPAD('a',2000) where c1=1; ----未超过8k,能够更新成功ide