[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 メーリングリストの案内