[解決済み] SQL、PostgresのOID、それは何ですか、そしてなぜ彼らは便利ですか?
質問
PostgreSQLのテーブル作成について調べていて、こんなことに遭遇しました。
CREATE TABLE (
...
) WITH ( OIDS = FALSE );
私はpostgresが提供するドキュメントを読み、OOPからオブジェクト識別子の概念を知っていますが、まだ把握できていません。
- なぜそのような識別子がデータベースで有用なのでしょうか?
- クエリーを短くするため?
- どのような場合に使用するのでしょうか?
どのように解決するのですか?
OIDは基本的に、すべての行に組み込みのIDを与え、(ユーザースペースのカラムではなく)システムのカラムに含まれます。 これは、主キーがないテーブルや、重複した行がある場合などに便利です。 例えば、同じ行が2つあるテーブルで、最も古い行を削除したい場合、oidカラムを使用して削除することができます。
OIDは、4バイトの符号なし整数で実装されています。これらは
ではない
一意なOIDカウンターは2³²-1で折り返されます。OID は、データ型を識別するためにも使われます (
/usr/include/postgresql/server/catalog/pg_type_d.h
).
私の経験では、この機能はほとんどのpostgresでバックされたアプリケーションでは一般的に使われておらず(おそらく非標準であることも理由の一つでしょう)、また その使用は基本的に非推奨 :
PostgreSQL 8.1ではdefault_with_oidsは はデフォルトでオフになっています。 PostgreSQLでは、デフォルトでオンになっています。
ユーザーテーブルでOIDを使用することは 非推奨とされているため、ほとんどの のインストールは、この を無効にします。アプリケーションで 特定のテーブルでOIDを必要とする は、作成時にWITH OIDSを指定する必要があります。 テーブルを作成します。この変数は との互換性を保つために有効です。 アプリケーションは、この の動作になります。
関連
-
[解決済み] psql: FATAL: データベース "<user>" が存在しない
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] UNIONとUNION ALLの違いは何ですか?
-
[解決済み] クラスター化インデックスと非クラスター化インデックスの実際の意味は何ですか?
-
[解決済み] SQLのIN句をパラメータ化する
-
[解決済み] SQL Serverで結果をページ分割する最も良い方法は何ですか?
-
[解決済み] PostgreSQL は設定/conf ファイルをどこに保存しますか?
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQL】1136 - 列数が1行目の値数と一致しない問題を解決
-
windows mysql prompt access denied for user ''@'localhost' to database.
-
SQL-初心者のためのベスト入門SQLクエリ I
-
[解決済み] アドホッククエリとは何ですか?
-
[解決済み] INNER JOINよりもCROSS APPLYを使用すべきなのはどのような場合ですか?
-
[解決済み] SQL Serverでテーブルからカラム名を取得するにはどうすればよいですか?
-
[解決済み] postgres: ユーザーをスーパーユーザーにアップグレードしますか?
-
[解決済み] mysqldumpで特定のテーブルをスキップする
-
[解決済み] DISTINCTでCOUNT(*)を選択する
-
[解決済み] 既存のカラムにIDを追加する