
122
ひとまとまりの処理を実行する
4-15
一連のトランザクションに含まれる処理が成功したときに、その結果を
データベースに反映させることをコミットと呼びます。
トランザクションを用いた場合、
(図4-29)。
銀行口座の例で考えてみましょう。A口座から B口座に 10 万円を送金す
るときは、データベース上ではトランザクションを用いて「A口座の預金
をマイナス10 万円にする」「 B 口座の預金をプラス 10 万円にする」といっ
た2 つの処理を実行し、最後にコミットを行います(図4-30)。
このとき途中経過は外から見えないので、他の処理からコマンド実行中
の値は見えず、A口座の値の更新直後に他の処理が入り込むことはありま
せん。B口座の値の更新も行い、最後にコミットを実行して初めてデータ
ベースに結果が反映され、他の処理からその値を読み取ることができるよ
うになります。
トランザクションの実行方法はデータベース管理システムによって違い
がありますが、MySQLの場合は、「STARTTRANSACTION;」を実行し、そ
の後にトランザクションを用いて実行したい処理を書いていきます。この
時点ではまだデータベースに結果は反映されません。最後に「COMMIT;」
というコマンドを実行することでコミットを行うことができ、データベー
スに変更内容が適用された状態となります。 ...