【初心者向け】MySQL Workbenchでオートコミット(Auto Commit)を有効にする方法

こんにちは。ゆうせいです
MySQL Workbenchを使っているとき、「あれ、データをINSERTしたのに反映されてない?」ということ、ありませんか?
それ、オートコミットがオフになっているのが原因かもしれません。
今回は、「オートコミットとはなにか?」から「オンにする方法」まで、丁寧に解説していきます!
オートコミット(Auto Commit)ってなに?
データベースの“保存ボタン”
オートコミットとは、SQLの実行と同時にその変更を自動で保存(コミット)する機能のことです。
たとえば、以下のようなSQL文を打ったとしましょう:
INSERT INTO users (name) VALUES ('Taro');
このとき、オートコミットがオンになっていれば、実行した瞬間にデータが保存されます。
しかし、オフになっていると「コミット(保存)するまでデータは仮状態」です。
つまり、「忘れて閉じたらデータが消える!」なんてことがあるわけです。
なぜオートコミットを切る人がいるのか?
「なんで最初からオンじゃないの?」と感じるかもしれませんね。
理由は、複数の処理をまとめて実行したい場面があるからです。
例:トランザクションの処理
- 商品の在庫を減らす
- 売上記録を保存する
- ポイントを付与する
この3つはセットで成功すべき処理。
どれか1つでも失敗したら、全部「やり直し」したいですよね?
このように、「まとめて実行したい」場合、オートコミットはオフにしておき、最後に明示的にこう書きます:
COMMIT;
オートコミットをオンにする方法(MySQL Workbench編)
さあ、本題です。MySQL Workbenchでオートコミットをオンにするにはどうすればいいのか。手順はこちら!
手順1:SQLエディタを開く
MySQL Workbenchを起動し、接続したいサーバを開いたら、上部の「SQLエディタ」画面に移動します。
手順2:右下の「Auto Commit」に注目!
SQLエディタ画面の右下、あるいはツールバーに「Auto Commit」というチェックボックスがあります。
- チェックが入っていれば:オン
- チェックが外れていれば:オフ
オンにしたい場合は、チェックを入れてください。
画面によっては「Query」→「Auto-Commit Transactions」にある場合もあります。
コマンドでも設定できる?
はい、できます!
SET autocommit = 1; -- オンにする
SET autocommit = 0; -- オフにする
このコマンドはセッション単位(=いまの接続中だけ)です。
次回MySQL Workbenchを起動したときには元に戻る可能性があるため、都度確認しましょう。
オートコミットのメリット・デメリット
オートコミット | メリット | デメリット |
---|---|---|
オン | ・変更が即保存される・操作が楽 | ・間違って実行しても戻せない |
オフ | ・間違ってもROLLBACKで戻せる | ・COMMITを忘れると保存されない |
まとめ:オンにすべき?オフにすべき?
基本的には、「ちょっとしたSQLを書く」程度ならオンでOKです。
ただし、複数の処理をまとめて扱うときはオフ+COMMITが安全です。
つまり、「使い分け」が大切!
今後の学習の指針
- トランザクションの概念(
BEGIN
,COMMIT
,ROLLBACK
)を学ぶ - セッション単位の設定とグローバル設定の違いを確認
- クライアントソフト(DBeaver、Sequel Aceなど)との違いも知っておこう!
次は「トランザクション管理」について深掘りしてみませんか?
わかりやすく解説しますので、また聞いてくださいね!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール
