[pgsql-jp: 28258] 同期の処理について

Takeo Shibata shibata @ areabe.com
2002年 12月 11日 (水) 12:25:30 JST


はじめまして
最近JDBCでpostgresqlを
使用することになりました

Javaはスレッドで同時アクセスを
ある程度多発する恐れがあるのですが
ドキュメントによるとこういった
物にたいし排他処理をしてくれるとのことでした
ただそれに付いてあまり
詳しい記述がなかたのでご存知のかたにお聞きしたいのですが
PostgreSQLがおこなう排他処理はどのレベルのものでしょうか

例
データベース Company
テーブル Employee(id,lastname,firstname,tel,email)

とあったとします
そして、3つのレコード(コンマ区切りで書きます)
1,Yamada,Taro,03-3333-3333,taro @ fight.com
2,Sato,Jiro,045-333-3333,Jiro @ fight.com
3,Suzuki,Goro,022-333-3333,suzuki @ runaway.com
とあったとしたとき
当然
update Employee set tel = '03-3333-4444' where id = 1;
と
update Employee set tel = '00-0000-0000'

がほぼ同時にあったとき排他処理で
先にきたほうが処理を開始してそれまで次のやつが
またなければいけないのはわかります

でも同じテーブルでレコードが違った場合
update Employee set tel = '03-3333-2222' where id = 1;
update Employee set tel = '03-3333-2224' where id = 2;

こういったやつは排他してしまうのでしょうか?
(排他する意味はなく、大量にきた場合大きな延滞がくるのではと恐れてます)
またフィールドが違うものはどうでしょうか?
例えば
update employee set tel = '03-3333-3333'
update employee set email = 'himitu @ nomore.com'
なんてした場合でもほぼ同時に来た場合排他をおこなってしまうのでしょうか?

もしかしてとても初歩的な質問かもしれませんが
どうかよろしくお願いいたします

柴田






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