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