達夢數據庫提示記錄超長是什麼緣由?

這是由於達夢裏面一個表中全部的列(大字段除外)的長度加起來不能超過頁大小的一半。
好比安裝時頁大小爲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

相關文章
相關標籤/搜索