今回はトランザクションを紹介します。
■トランザクションとは??
データベース操作にて、まとめて実行されるべき一連の処理です。
トランザクションはbeginというSqlを実行することで開始します。
begi後に追加・更新・削除処理を行っても、すぐにDBには反映されません。
これらの変更を反映させるためには、commitを行うことで、トランザクション内の処理を一気に反映させることができます。
また、rollbackを行うことで、処理をすべて取り消すことも可能です。
begin→トランザクションの開始
-追加処理
-更新処理
-削除処理
commit 一括反映
若しくは、
roll back 取り消し
それでは、トランザクションが必要な理由について例を挙げますので、イメージしてみましょう。
Amazonで商品が購入される流れをイメージ!!
トランザクションなしの場合
購入者AさんがカゴにA本を入れて決済ボタンを押します。カゴにA本を入れると、
在庫が1->0に減ります。
決済時に間違えてクレジットを決済をしてしまい、エラーになりました。
ここで購入者Aさんがやっぱり購入をやめたとします。
続いて、購入者BさんがA本を検索しても在庫が0のままで購入できなくなってしまいます。
トランザクションがありの場合
①Amazonにて購入者AさんがカゴにA本を購入。
この時、update文により、本の在庫は1→0になります。
②クレジットカードによる決済処理を行う。
決済が失敗した場合、トランザクションを張っているとrollbackできます。そのため、在庫の個数を0→1個に戻す事が可能です。
在庫が減ったままだと困りますよね。
こういった場面でトランザクションは必要になります。
このように