ROWID疑似列は、テーブル内の特定の行を迅速に特定する機能を提供します。ROWID値は主キーからエンコードされ、実際には保存されません。本記事では、ROWID疑似列のROWID値の使用方法について説明します。
データベース内の各行に対して、ROWID疑似列はエンコードされた主キーを返し、それはBase64エンコードによって変換されます。
通常、ROWID値はデータベース内の1行を一意に識別します。ただし、同一クラスタ内の異なるテーブルに属する行でも、同じ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