SQLでINSERTする時に主キーがすでに使われていないかとか
UPDATEする時に、更新する行がちゃんとあるかなんてのは
SELECT文なんかでいちいち調べてますか?
 それとも、調べずに実行して例外や帰ってきた更新行数から正常に行われたかを
調べてますか?
 SELECT文で調べるのはロックとかめんどくさいけど、
例外や更新行数で調べるのは何で失敗したか調べにくいんですよね。

 たとえば、現在PostgreSQL+javaで開発しているんですが
INSERTしたときに主キーが重複していればSQLExceptionが起こるので
キャッチしてメッセージを受け取って主キー制約に違反していたときにでる
メッセージだったら主キーが重複してたんだなってわかるんですけど、
メッセージが変わったらどうするんだろとか、RDB変わると当然メッセージも変わるよな
とか考えるとこの方法ではちょっと不安です。

 普通どうするもんなんでしょうか。