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