[pgsql-jp: 29976] Re: oid の同一性と生成ロジックについて

Yutaka tanida yutaka @ hi-net.zaq.ne.jp
2003年 5月 19日 (月) 13:47:07 JST


谷田です。

On 19 May 2003 13:03:28 +0900
HAYAKAWA Hiroshi <hayakawa @ sam.hi-ho.ne.jp> wrote:

> つまるところ、PostgreSQLにおいて
> initdb以降同一のクエリーを同じ順に実行した場合に、
> oidが同一であることがoidの生成ロジック的に保証されていれば
> 実質的な問題は発生しない、と言えると思うのですが、
> いかがなものなのでしょうか。

保証はされていないと思いますが、現状ではほぼそのように動作します。

むしろ、同じ順に実行していると保証することの方が大変で、それを保証できな
いからこそ、この記事の作者(読んでないけど三谷さん?)は「レプリケーショ
ンできない」と書いているのだと思います。

> ちなみに、いまは、ウェブアプリケーションにおいて、
> 新規データの登録時に、INSERTの後にoidを取得し、
> そのoidを用いてそのデータのシリアルなIDを取得する、
> というロジックを多用しています。

そもそも、そのロジックがあまりよろしくないと思います。この場合のID取得に
はcurrval()関数を使うとか、serial型を使わずに自前でsequence管理するのが
筋でしょう。

-- 
Yutaka tanida <yutaka @ nonsensecorner.com>
http://www.nonsensecorner.com/




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