Posted at

トランザクション処理とは

More than 3 years have passed since last update.

あるsqlファイルに

BEGIN;

INSERT INTO
INSERT INTO

INSERT INTO
COMMIT;

と書かれていて「BEGIN、COMMITってなんだ?いる?」ってなって調べたのでメモ。

これは「トランザクション処理」というもので、BEGIN〜COMMITがひとつの処理として扱われるので、どこか途中で処理が中断したりしてデータに不整合が生じるのを防ぐためのものらしい。

銀行などではAさんがBさんにお金を振り込むことがあるが、その際に「Aさんの口座からお金を減らす」「Bさんの口座にお金を増やす」という処理をまとめて行わないといけない場合などに使う。

たしかにAさんの口座からお金を減らした時点でエラーが起こると大変だ。完全に実行されるか、完全に実行されないか(Aさんの口座から減らさないし、Bさんの口座に増やさない)としなくてはいけない。