データベース内の各行にはアドレスが付与されています。Rowidデータ型は、データベース内の行アドレスを格納するために使用され、ROWIDとUROWIDが含まれます。本記事では主にRowidデータ型について説明します。
ROWIDデータ型
OceanBaseデータベースの現行バージョンでサポートされているROWIDは論理ROWIDです。インデックス・オーガナイズド・テーブル(IOT)のROWIDは論理ROWIDです。
ROWID行アドレスを確認するには、擬似列ROWIDを照会します。この擬似列の値は各行アドレスを表す文字列であり、これらの文字列のデータ型はROWIDです。また、ROWIDデータ型の列を含むテーブルを作成することもできます。
ROWIDはBase64エンコードによって変換されます。
ROWIDは直接使用できません。詳細な使用方法については、ROWID擬似列を参照してください。
UROWIDデータ型
Rowidの別のタイプはUniversal Rowed(UROWID)と呼ばれます。UROWIDは論理ROWIDをサポートします。
一部のテーブルの行には、物理的または永続的なアドレスがない場合や、OceanBaseデータベースによって生成されたアドレスでない場合があります。例えば、インデックス・オーガナイズド・テーブルの行アドレスはインデックスのリーフに格納されており、移動可能です。
OceanBaseデータベースは、インデックス・オーガナイズド・テーブルのアドレスを格納するために汎用的なROWID(UROWID)を使用します。インデックス・オーガナイズド・テーブルには論理UROWIDがあり、UROWIDはROWID擬似列に格納されます。
OceanBaseデータベースは、テーブルの主キーに基づいて論理ROWIDを作成します。主キーが変更されない限り、論理ROWIDも変更されません。インデックス・オーガナイズド・テーブルのROWID擬似列のデータ型はUROWIDです。SELECT ... ROWIDステートメントを使用してこの擬似列にアクセスできます。インデックス・オーガナイズド・テーブルのROWIDを格納する場合は、そのテーブルにUROWID型の列を定義し、ROWID擬似列の値をその列に取得することができます。