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

こんにちは。ゆうせいです

MySQL Workbenchを使っているとき、「あれ、データをINSERTしたのに反映されてない?」ということ、ありませんか?
それ、オートコミットがオフになっているのが原因かもしれません。

今回は、「オートコミットとはなにか?」から「オンにする方法」まで、丁寧に解説していきます!


オートコミット(Auto Commit)ってなに?

データベースの“保存ボタン”

オートコミットとは、SQLの実行と同時にその変更を自動で保存(コミット)する機能のことです。

たとえば、以下のようなSQL文を打ったとしましょう:

INSERT INTO users (name) VALUES ('Taro');

このとき、オートコミットがオンになっていれば、実行した瞬間にデータが保存されます。

しかし、オフになっていると「コミット(保存)するまでデータは仮状態」です。
つまり、「忘れて閉じたらデータが消える!」なんてことがあるわけです。


なぜオートコミットを切る人がいるのか?

「なんで最初からオンじゃないの?」と感じるかもしれませんね。

理由は、複数の処理をまとめて実行したい場面があるからです。

例:トランザクションの処理

  1. 商品の在庫を減らす
  2. 売上記録を保存する
  3. ポイントを付与する

この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など)との違いも知っておこう!

次は「トランザクション管理」について深掘りしてみませんか?
わかりやすく解説しますので、また聞いてくださいね!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。