あるsqlファイルに
BEGIN;
INSERT INTO
INSERT INTO
…
INSERT INTO
COMMIT;
と書かれていて「BEGIN、COMMITってなんだ?いる?」ってなって調べたのでメモ。
これは「トランザクション処理」というもので、BEGIN〜COMMITがひとつの処理として扱われるので、どこか途中で処理が中断したりしてデータに不整合が生じるのを防ぐためのものらしい。
銀行などではAさんがBさんにお金を振り込むことがあるが、その際に「Aさんの口座からお金を減らす」「Bさんの口座にお金を増やす」という処理をまとめて行わないといけない場合などに使う。
たしかにAさんの口座からお金を減らした時点でエラーが起こると大変だ。完全に実行されるか、完全に実行されないか(Aさんの口座から減らさないし、Bさんの口座に増やさない)としなくてはいけない。