MySQLストアドプロシージャーのアトミック性

http://dev.mysql.com/doc/refman/5.1/ja/begin-end.html

オプションの[NOT] ATOMIC節はまだサポートされていません。これは、トランザクションのセーブポイントがインストラクションブロックの始めにセットされていなく、この文脈中で使用するBEGIN節は現在のトランザクションに対して効果が無いことを意味します。

ということで、プロシージャー内でアトミック性は保証されていない。
よって、アトミック性を確保したい複数の処理を行う際は、明示的にトランザクションを開始するか(InnoDBとか)、テーブルのロックなど(MyISAMとか)が必要になる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です