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 setROWID値を使用して
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