Oracleの“ rowid”の概念を持つオープンソースのSQLデータベースはありますか?擬似列?

StackOverflow https://stackoverflow.com/questions/816234

  •  03-07-2019
  •  | 
  •  

質問

MySQLとPostgreSQL [1]にはその概念がないことを知っているので、この概念を持つオープンソースのSQLデータベースがあることを知りたいと思います。

[1] PostgreSQLにはROWID疑似列があることが後で指摘されました。

役に立ちましたか?

解決

PostgreSQL にはこの概念があります。

こちら を参照して、< code> PostgreSQL 、 ctid のうち関心のあるもの:

  

ctid(タプル識別子)

     

データベース内のタプルの物理的な場所を記述する識別子。数字のペアはctidで表されます:ブロック番号、およびそのブロック内のタプルインデックス。

これは、 Oracle rowid に直接類似しています。

MySQL の場合、行の物理的な場所はフロントエンドで使用できません。

MyISAM で、 rowid は先頭からの単なるファイルオフセットであり、それがインデックスリーフに保存されます。

InnoDB では、テーブルは設計によりインデックス構成されます。つまり、テーブルには常に何らかの種類の主キーがあり、 InnoDB テーブルは、その PRIMARY KEY を行ポインターとして使用します。

これは、 rowid がブロック内のブロックへの物理ポインターではない Oracle index organized テーブルにも当てはまります。データファイルではなく、 logical ROWID または UROWID

と呼ばれるもの

Oracle INDEX ORGANIZED テーブルから ROWID を選択すると、異なる形式(< code> * BAEBwPICwQL + )。これは実際にはエンコードされた PRIMARY KEY 値です。

PRIMARY KEY として列を定義していない場合、 MySQL は隠しサロゲート PRIMARY KEY を作成します。制御することはありません。

そのため、 InnoDB テーブルに何らかの種類の PRIMARY KEY を常に作成する必要があります。無料で、列を制御できます。

他のヒント

どちらも実行していない場合、他のユーザーは実行しません。

SQLiteには自動インクリメントされた「ROWID」があります。 ROWID、_ROWID、またはOIDを使用してアクセスできる列。整数の主キーを定義すると、エイリアスが作成されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top