You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DB2 for AS/400中删除记录后新插入记录的RRN能否递增?

DB2 for AS/400中实现RRN递增的方案

能实现,但需要根据需求选择对应的操作方式,以下是两种可行方案:

方案一:使用IDENTITY列替代原生RRN

原生RRN(相对记录号)是DB2 for i(原AS/400)默认分配的物理存储标识,它会复用已删除记录的空间位置,这是系统优化存储的默认行为。如果需要严格递增的序列值,更推荐创建带IDENTITY属性的业务列,示例SQL如下:

CREATE TABLE YOUR_TABLE (
    SEQ_ID INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1),
    -- 其他业务列
    NAME VARCHAR(50),
    CREATE_DATE DATE
);

该列的值会严格递增,不会复用已删除记录的ID,即使删除之前的记录,新插入的ID也会持续向上累加,完全满足递增需求。

方案二:修改表的REUSEDLT属性

如果必须依赖原生RRN实现递增,可以修改表的REUSEDLT(重用已删除记录空间)属性为*NO,示例SQL如下:

ALTER TABLE YOUR_TABLE ALTER REUSEDLT *NO;

当REUSEDLT设为*NO时,DB2 for i不会复用已删除记录的物理存储位置,新插入的记录会被分配到新的位置,对应的RRN就会持续递增。

注意:该设置会导致表占用的存储空间不断增大,已删除的记录空间无法自动回收,需要定期执行REORG TABLE YOUR_TABLE来重组表、释放闲置空间,否则可能影响系统性能和存储利用率。

补充说明:原生RRN的设计定位是物理存储的定位标识,并非用于业务场景的递增序列,因此从业务稳定性和可维护性角度,优先推荐方案一。

内容的提问来源于stack exchange,提问作者suman biswas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 06:36:35