[pgsql-jp: 34644] UPDATE実行時のデッドロックについて
Tanaka-Qtaro-Yasuhiro
tanaq @ ca2.so-net.ne.jp
2005年 1月 14日 (金) 17:33:37 JST
田中久太郎です。
テーブル全行を更新するUPDATE文でデッドロックが発生して
困っています。
次のようなテーブルに5000行ぐらいのデータがあります。
CREATE TABLE a (
id integer NOT NULL,
counter integer,
PRIMARY KEY (id)
);
このテーブルに向かって、
BEGIN;
UPDATE a SET counter = counter + 1;
END;
という SQL文を同時にたくさん実行すると、以下のエラーにな
る場合が出てきます。
ERROR: deadlock detected
この更新処理でデッドロックを発生しないようにするにはどの
ようにすればよいでしょうか。正しい方法をご存知の方はご教
示いただけると助かります。
環境は以下の通りです。
PostgreSQL 7.3.2
RedHat 9
なお、SQL文は psql から実行しました。
pgsql-jp メーリングリストの案内