[pgsql-jp: 34623] Re: fieldのOID

hirano hirano @ valuenet.co.jp
2005年 1月 12日 (水) 17:18:02 JST


平野と申します。

> PQftypeでフィールドタイプのOIDを取得できます。このOIDを取得して
> 型情報を取得できると思うのですが、私は実際にこのOIDを使って何か
> したことがありません。
> 
> 使い方は解かるのですが、実際のシステムでこのOIDが取得できると
> なにに役に立つでしょうか?

CREATE TABLE時に WITHOUT OIDS を付けてテーブルを作成
すると、OIDがないテーブルができますし、将来対象テーブル
をVIEWに置き換えたとき、移行が面倒だったり、OIDが
限界値までインクリメントされてしまって一周したとき
の処理を考えたりで、後々厄介になる恐れがあるので私は
その利用を敬遠しています。

もし使うとしても、各レコードのユニークキーとして使う
目的くらいしかちょっと思いつかないのですが、テーブル
にプライマリキーを作ればOIDはSQLで引っ張る必要はない
と思っています。

#あとは、OIDの値から、そのテーブルがどのくらい追加変更
#されたかの目安にするとか・・・これは意味無いですね・・。

ただし、システムテーブル(pg_***)テーブル郡の連結には
多用されているようなので、弊社で作っているソフトの
PostgreSQLオブジェクトツリーを構築するときにはOID
をキーにジョインして子テーブル項目を引っ張ったりし
ています。(OIDを使用するしか方法がなさそうでしたので)

参考になれば幸いです。
0--------1---------2---------3---------4---------5
株式会社バリューソフトウエア

平野 源
hirano @ valuenet.co.jp

ValueSQL -- For all SQL developers --  
http://gwsrv.valuenet.co.jp/ValueSQL/pukiwiki.php
0--------1---------2---------3---------4---------5





pgsql-jp メーリングリストの案内