[pgsql-jp: 34507] データ登録時の重複チェックについて
ngy.yt @ daikodenshi.co.jp
ngy.yt @ daikodenshi.co.jp
2004年 12月 21日 (火) 17:53:47 JST
吉田と申します。
Webアプリケーションで、商品の登録をさせようとしているのですが、一人の人が同日に
同じ商品を登録できないよう、テーブルを「EXCLUSIVE MODE」でロックをかけ、チェッ
クを行っています。
チェック方法は下記の通りです。
BEGIN
LOCK TABLE goods IN ACCESS EXCLUSIVE MODE
SELECT regist_date as max_date FROM goods WHERE member_code='00000' ORDER BY max_date desc;
上記SQLで取得した時間と、現在時刻を比較し、取得した日付から1日以上経過しているならデータ登録
END
しかし、この方法ですと、誰かが登録をしている最中は他の人も登録することが出来ずア
クセスが集中しているときには、処理が遅くなってしまい困っています。
テーブルのロックをかけずに重複チェックを行う方法、または、他によい方法はないでしょ
うか?
環境は下記の通りです。
OS Red Hat 7.2
php 4.3.3
postgres 7.2.3
よろしくお願いいたします。
pgsql-jp メーリングリストの案内