私はMySQLとPostgreSQL [1]はではないことを認識しています。はその概念を持っているので、そこには概念を持っているオープンソースのSQLデータベースがあります。オラクルの "ROWID"疑似カラムという概念を持つオープンソースSQLデータベースはありますか?
[1] PostgreSQLにはROWID疑似カラムがあることが後で指摘されました。
私はMySQLとPostgreSQL [1]はではないことを認識しています。はその概念を持っているので、そこには概念を持っているオープンソースのSQLデータベースがあります。オラクルの "ROWID"疑似カラムという概念を持つオープンソースSQLデータベースはありますか?
[1] PostgreSQLにはROWID疑似カラムがあることが後で指摘されました。
PostgreSQL
この概念があります。
たctid
のうち、PostgreSQL
に疑似列の簡単なリストについては、hereを参照してください、あなたに興味がある:
ctid (tuple identifier)
データベース内のタプルの物理的な位置を説明識別子。 1対の数字はctidで表されます:ブロック番号とそのブロック内のタプルインデックス。
これは、Oracle
のrowid
の直接の類似体です。
MySQL
の場合、行の物理的な位置はフロントエンドでは使用できません。
MyISAM
では、rowid
は、最初からオフセットされたファイルで、インデックスの葉に格納されています。 InnoDB
で
、テーブルは、彼らが常にプライマリキーのいくつかの種類があることを意味し、InnoDB
テーブルに対する索引は、行ポインタとしてPRIMARY KEY
ことを使用することを、設計によってindex organized
あります。あなたがROWID
からを選択した場合
これもOracle
のindex organized
rowid
は、データ・ファイル内のブロックへの物理的なポインタされていないテーブル、のではなく、そのような呼ばlogical ROWID
、またはUROWID
にも当てはまりますINDEX ORGANIZED
テーブルがOracle
にある場合は、別の形式(*BAEBwPICwQL+
のようなもの)が表示されます。これは実際に符号化されたPRIMARY KEY
値です。
PRIMARY KEY
として列を定義していない場合は、MySQL
は制御できない隠しサロゲートPRIMARY KEY
を作成します。
テーブルには、何らかの種類のPRIMARY KEY
を作成する必要があります。無料で、その列を制御できます。
いずれも実行していない場合は、それ以外は実行しません。
SQLiteには、ROWID、_ROWID、またはOIDを使用してアクセスできる自動インクリメント "ROWID"カラムがあります。整数プライマリキーを定義すると、エイリアスされます。
オラクル・フィーチャーは、特定の照会の結果の行番号です。だからあなたがid descで注文すれば、最初の結果はまだrowid#1を持つでしょう。 –
ああ、私はそれを理解していませんでした。そのためのユースケースはありますか(あなたが手で行うことはできませんでした)? –
それはあなたがサブクエリを使用する場合、その構造をサポートしていませんデシベルでTOP(X)を取得する方法です:( SELECT * mytableはORDER BY interestingField )からWHERE ROWID> 101 –
これは、データベース全体を割り引くための非常に特殊な要求のようです。あなたが解決しようとしている特定の問題を投稿する場合、誰かが別の解決法を持っているかもしれません。 –
あなたの質問は本当にROWIDかROWNUMについてですか?レコードのROWNUMは、問合せごとに異なりますが、ROWIDは異なります。 – DCookie
私は実際にどのデータベースを使用するかを決めるつもりはありません。この質問は、私がオラクルの友人と話したことから得たものです。 私がROWIDかROWNUMを意味するかどうかは、私のOracleの友人がROWIDと言ったので、私はROWNUMを意味するものではないと仮定します。 –