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

无主键/唯一键/复合键的AS400数据库如何唯一标识记录?

IBM i(原AS400)中类似Oracle ROWID的机制及自定义方案

内置类似ROWID的机制:相对记录号(RRN)

IBM i的物理文件(对应关系型数据库的表)自带相对记录号(Relative Record Number, RRN),和Oracle的ROWID作用类似,是系统为每条记录自动分配的唯一标识,无需用户定义主键或唯一键。

  • RRN的特性:
    • 每个物理文件中的记录都有唯一的RRN,即使记录被删除,空缺的RRN不会被复用(除非重建文件)
    • 由系统自动维护,不需要额外的存储或维护成本
  • 获取RRN的方式:使用RRN()函数,示例SQL:
SELECT RRN(你的表名), * FROM 你的表名;

自定义类似ROWID的标识方案

如果内置RRN不符合需求,也可以手动创建唯一标识字段,常见方案有两种:

1. 自增身份字段

通过GENERATED ALWAYS AS IDENTITY定义自增列,系统会自动为新插入的记录分配唯一递增数值,示例创建表语句:

CREATE TABLE 你的表名 (
    唯一标识列 INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1),
    其他字段1 VARCHAR(50),
    其他字段2 DATE,
    ...
);

2. UUID全局唯一标识

使用SYS_GUID()函数生成UUID(全局唯一标识符),适合分布式场景或需要跨系统唯一标识的情况,示例创建表语句:

CREATE TABLE 你的表名 (
    唯一标识列 CHAR(36) GENERATED ALWAYS AS (SYS_GUID()),
    其他字段1 VARCHAR(50),
    其他字段2 DATE,
    ...
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:15:31