首批通过分布式安全可靠测评,为关键业务系统打造
ROWID 伪列
更新时间:2026-01-28 18:51:31
ROWID 伪列提供了快速定位表中某一行的能力,ROWID 值由主键编码得到,不会进行实际的存储。本文主要介绍 ROWID 伪列的 ROWID 值的使用说明。
对于数据库中的每一行,ROWID 伪列返回经过编码后的主键,通过 Base64 编码转换而成。
通常,ROWID 值唯一标识数据库中的一行。但是,存储在同一集群中的不同表中的行可以具有相同的 ROWID。ROWID 伪列所支持的数据类型是 UROWID。
ROWID 值有如下重要用途:
是访问单行的最快方式。
作为表中行的唯一标识符。
使用 ROWID 值需要特别注意以下事项:
不能使用 ROWID 作为表的主键。
虽然可以在查询的
SELECT和WHERE子句中使用 ROWID 伪列,但是因为这些伪列值实际上并未存储在数据库中,所以不能插入、更新或删除 ROWID 值。
ROWID 值的使用示例如下:
从
employees表中查询 ROWID 值。obclient> SELECT ROWID, last_name FROM employees WHERE department_id = 20; +-------------------+-----------+ | ROWID | LAST_NAME | +-------------------+-----------+ | *AAIKAQAAAAAAAAA= | xxx | +-------------------+-----------+ 1 row in set使用 ROWID 值进行
UPDATE操作。obclient> UPDATE employees SET last_name = 'yyy' WHERE ROWID = '*AAIKAQAAAAAAAAA='; Query OK, 1 row affected Rows matched: 1 Changed: 1 Warnings: 0 obclient> SELECT last_name, department_id FROM employees; +-----------+---------------+ | LAST_NAME | DEPARTMENT_ID | +-----------+---------------+ | yyy | 20 | +-----------+---------------+ 1 row in set