• ベストアンサー

max+1で初番する場合 for updateは必要ですか?

AutoIncrementでなく、 あるコードの中の最大値+1で番号を初番する場合、 1.トランザクション開始 2.select max(no) from master where aru_code = 1 for update 3.insert into master values (2で取得したnoとaru_code=1) 4.トランザクション終了 というように、for updateで行ロックをかけないと 同じ番号が初番されてしまう可能性があるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

あると思います。 実際、Command Line Clientを二つ立ち上げて、実行してみると for updateをつけないとタイミングによっては同じ値を取得して しまいます。

関連するQ&A