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