RID 标量函数 (scalar function)

RID函数用于返回记录ID(RID)。 RID用于唯一标识行。

阅读语法图跳过可视化语法图RID( 表号)

该模式是 SYSIBM。

当一行数据被多次调用时,函数可能会返回不同的值。 例如,在运行REORG实用程序后,RID函数可能返回的行值与运行REORG实用程序之前返回的值不同。 RID功能并非确定性。

表号
更改开始表名必须是一个外显名称,用于唯一标识引用函数的基表、视图或子查询的嵌套表表达式。更改结束

如果表指定符指定了视图或嵌套表表达式,则 RID 函数将返回视图或嵌套表表达式的基础表的 RID。 指定的视图或嵌套表表达式的外层子选择中只能包含一个基础表。

更改开始表格编号不得用于:更改结束

  • 表函数
  • 收藏品衍生出的桌子
  • 别名、同义词或具体化的观点
  • 一个具体化的嵌套表表达式
  • 系统周期时间表,如果系统时间敏感绑定选项为“是”
  • 如果满足以下条件之一,则启用存档的表格:
    • 对于静态语句,存档敏感选项的有效值为“是”。
    • 为了动态声明,存档敏感选项设置为“是”,GET_ARCHIVE内置全局变量设置为“Y”。

函数的结果为BIGINT。 结果可以为空值。

注意

RID值注意事项:
Db2 在执行REORG操作时,可能会重复使用RID编号。 如果使用RID功能获取某行的值,而应用程序依赖于该值在行存在期间保持不变,请考虑以下替代方案:
  • 在表中添加一个ROWID列,以提供与每行相关的值,而不是调用RID函数为行生成一个值。
  • 为表定义一个主键,使用主键的列来确保唯一性,而不是调用RID函数为行生成一个值。

示例

示例 1:
请填写部门“20”中员工的RID和姓氏:
SELECT RID(EMP), LASTNAME
 FROM EMP
 WHERE DEPTNO = '20';
更改开始示例 2:更改结束
更改开始在查询中返回部门“20”中员工的RID和姓氏,查询中指定了表EMP的相关名称A。 A是表EMP的公开名称,因此它被用作RID函数的参数。
SELECT RID(A), LASTNAME
 FROM EMP AS A
 WHERE DEPTNO = '20';
如果将 EMP 指定为 RID 函数的参数,而不是暴露名称 A,则返回错误。更改结束
示例 3:
将主变量 HV_EMP_RID 设置为员工编号为“3500”的员工的RID值:
SELECT RID(EMP) INTO :HV_EMP_RID
 FROM EMP
 WHERE EMPNO = '3500';