[pgsql-jp: 34512] Re: データ登録時の重複チェックについて

TANIDA Yutaka tanida @ sra.co.jp
2004年 12月 21日 (火) 19:31:04 JST


谷田です。

On Tue, 21 Dec 2004 17:53:47 +0900
ngy.yt @ daikodenshi.co.jp wrote:

> 吉田と申します。
> 
> 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
> 
> しかし、この方法ですと、誰かが登録をしている最中は他の人も登録することが出来ずア
> クセスが集中しているときには、処理が遅くなってしまい困っています。
> テーブルのロックをかけずに重複チェックを行う方法、または、他によい方法はないでしょ
> うか?

select for updateでできませんかね?

-- 
TANIDA Yutaka <tanida @ sra.co.jp>




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