[pgsql-jp: 35078] ロックについて

ろいたん roichan_ayu @ cute.biglobe.ne.jp
2005年 3月 21日 (月) 17:39:19 JST


お世話になります。

Postgresのロックについて教えてください。

現在Postgres7.4.7でデータベースアプリケーションを作成しています。
Postgresを使うのは今回が初めてなので複数端末による、同時更新について悩んでいます。

プログラムの流れ

1.テーブルA,B,Cの最大IDを取得する
2.1の最大IDが全て同じ場合MAX+1をプログラムで作成
3.A.B.CテーブルにMAX+1のIDでデータをInsertする
4.正常にInsertできたらcommitする。

この繰り返しを複数でやるときうまくいきません。

というのはトランザクションの管理が3の更新時にかかるため
1の最大IDを複数の端末が取得してしまいます。
考えではこの流れ全体の間をテーブルロックをかけたいのですが
うまくいきません。

たとえば
SHARE MODEなどを試しましたが、ロック中にもSelecetの結果が帰ってくる
みたいでした。

何かよい方法がありましたら教えてください。

よろしくお願いいたします。



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