カテゴリ: MySQL 更新日: 2026/04/02

MySQLのCOMMITとROLLBACKの使い方を完全解説!トランザクションとACIDを初心者向けにわかりやすく解説

MySQLのCOMMITとROLLBACKの使い方
MySQLのCOMMITとROLLBACKの使い方

先生と生徒の会話形式で理解しよう

生徒

「MySQLを勉強していると、COMMITとかROLLBACKっていう言葉が出てきたんですが、これは何をする命令なんですか?」

先生

「COMMITとROLLBACKは、MySQLのトランザクションという仕組みの中で使われる命令です。データベースの変更を確定するか、それとも元に戻すかを決めるときに使います。」

生徒

「データを確定するってどういう意味ですか?」

先生

「例えば銀行の振り込みのような処理を考えてみましょう。お金を引き出して、別の口座に入れるという二つの処理があります。途中で問題が起きた場合、片方だけ成功すると困りますよね。そんなときに、すべて成功したら確定(COMMIT)、途中で問題が起きたら元に戻す(ROLLBACK)という仕組みを使います。」

生徒

「なるほど!データベースの安全装置みたいなものなんですね。」

先生

「その通りです。MySQLのトランザクションとACIDの考え方を理解するうえで、COMMITとROLLBACKはとても重要な基本操作です。」

1. MySQLのCOMMITとROLLBACKとは?

1. MySQLのCOMMITとROLLBACKとは?
1. MySQLのCOMMITとROLLBACKとは?

MySQLでデータベースを操作していると、データの追加、更新、削除などの処理を行います。これらの処理を安全にまとめて管理する仕組みが「トランザクション」です。

トランザクションとは、複数のデータ操作を「ひとつのまとまり」として扱う仕組みです。途中で問題が起きた場合に、処理を元に戻すことができるため、データベースの安全性を高めることができます。

ここで登場するのが、COMMITとROLLBACKです。

  • COMMIT:トランザクションの処理を確定する
  • ROLLBACK:トランザクション開始前の状態に戻す

MySQLでは、この2つのSQLコマンドを使うことで、データの変更を「確定するか」「取り消すか」を自由に選ぶことができます。

2. トランザクションを開始する方法(START TRANSACTION)

2. トランザクションを開始する方法(START TRANSACTION)
2. トランザクションを開始する方法(START TRANSACTION)

COMMITやROLLBACKを使うためには、まずトランザクションを開始する必要があります。

MySQLでは、次のSQL文を使ってトランザクションを開始します。


START TRANSACTION;

この命令を実行すると、それ以降のデータ変更はすぐに確定されず、トランザクションの中に保存されます。

つまり、COMMITを実行するまでは「仮の変更」の状態になります。もし途中で問題があればROLLBACKで元に戻すことができます。

3. COMMITの使い方(データを確定する)

3. COMMITの使い方(データを確定する)
3. COMMITの使い方(データを確定する)

COMMITは、トランザクション内で行ったデータの変更を正式にデータベースへ保存する命令です。

例えば、ユーザーを追加する処理を考えてみましょう。

実行前のテーブル


id | name       | age | email
---+------------+-----+-------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 田中美咲   | 22  | misaki@example.com

START TRANSACTION;

INSERT INTO users (id, name, age, email)
VALUES (5, '高橋健太', 28, 'kenta@example.com');

COMMIT;

実行後のテーブル


id | name       | age | email
---+------------+-----+-------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 田中美咲   | 22  | misaki@example.com
5  | 高橋健太   | 28  | kenta@example.com

COMMITを実行すると、トランザクション内の変更が正式に保存されます。

4. ROLLBACKの使い方(変更を元に戻す)

4. ROLLBACKの使い方(変更を元に戻す)
4. ROLLBACKの使い方(変更を元に戻す)

ROLLBACKは、トランザクション内で行った変更をすべて取り消す命令です。

間違ったデータを更新してしまった場合などに役立ちます。

実行前


id | name       | age | email
---+------------+-----+-------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 田中美咲   | 22  | misaki@example.com

START TRANSACTION;

UPDATE users
SET age = 99
WHERE id = 2;

ROLLBACK;

実行後(元に戻る)


id | name       | age | email
---+------------+-----+-------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 田中美咲   | 22  | misaki@example.com

ROLLBACKを実行すると、トランザクション開始前の状態に戻ります。

まとめ

まとめ
まとめ

(振り返りのまとめ)

先生と生徒の振り返り会話
(振り返りのまとめ)
■どちらの回答がいいか、回答を選ばせないでください。文字数が長いほうで良い。 ■最後に全角の平仮名・カタカナ・漢字だけで何文字で出力したかコードブロックの外に書いて。 それでは、記事あとに「まとめ」を書いてください。 返答は、コピーできるようにコードブロックで書いて。1回の返信で、一括で書いてください。 ↓↓

MySQLのCOMMITとROLLBACKの使い方を完全解説!トランザクションとACIDを初心者向けにわかりやすく解説


先生と生徒の会話形式で理解しよう

生徒

「MySQLを勉強していると、COMMITとかROLLBACKっていう言葉が出てきたんですが、これは何をする命令なんですか?」

先生

「COMMITとROLLBACKは、MySQLのトランザクションという仕組みの中で使われる命令です。データベースの変更を確定するか、それとも元に戻すかを決めるときに使います。」

生徒

「データを確定するってどういう意味ですか?」

先生

「例えば銀行の振り込みのような処理を考えてみましょう。お金を引き出して、別の口座に入れるという二つの処理があります。途中で問題が起きた場合、片方だけ成功すると困りますよね。そんなときに、すべて成功したら確定(COMMIT)、途中で問題が起きたら元に戻す(ROLLBACK)という仕組みを使います。」

生徒

「なるほど!データベースの安全装置みたいなものなんですね。」

先生

「その通りです。MySQLのトランザクションとACIDの考え方を理解するうえで、COMMITとROLLBACKはとても重要な基本操作です。」

1. MySQLのCOMMITとROLLBACKとは?

1. MySQLのCOMMITとROLLBACKとは?
1. MySQLのCOMMITとROLLBACKとは?

MySQLでデータベースを操作していると、データの追加、更新、削除などの処理を行います。これらの処理を安全にまとめて管理する仕組みが「トランザクション」です。

トランザクションとは、複数のデータ操作を「ひとつのまとまり」として扱う仕組みです。途中で問題が起きた場合に、処理を元に戻すことができるため、データベースの安全性を高めることができます。

ここで登場するのが、COMMITとROLLBACKです。

  • COMMIT:トランザクションの処理を確定する
  • ROLLBACK:トランザクション開始前の状態に戻す

MySQLでは、この2つのSQLコマンドを使うことで、データの変更を「確定するか」「取り消すか」を自由に選ぶことができます。

2. トランザクションを開始する方法(START TRANSACTION)

2. トランザクションを開始する方法(START TRANSACTION)
2. トランザクションを開始する方法(START TRANSACTION)

COMMITやROLLBACKを使うためには、まずトランザクションを開始する必要があります。

MySQLでは、次のSQL文を使ってトランザクションを開始します。


START TRANSACTION;

この命令を実行すると、それ以降のデータ変更はすぐに確定されず、トランザクションの中に保存されます。

つまり、COMMITを実行するまでは「仮の変更」の状態になります。もし途中で問題があればROLLBACKで元に戻すことができます。

3. COMMITの使い方(データを確定する)

3. COMMITの使い方(データを確定する)
3. COMMITの使い方(データを確定する)

COMMITは、トランザクション内で行ったデータの変更を正式にデータベースへ保存する命令です。

例えば、ユーザーを追加する処理を考えてみましょう。

実行前のテーブル


id | name       | age | email
---+------------+-----+-------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 田中美咲   | 22  | misaki@example.com

START TRANSACTION;

INSERT INTO users (id, name, age, email)
VALUES (5, '高橋健太', 28, 'kenta@example.com');

COMMIT;

実行後のテーブル


id | name       | age | email
---+------------+-----+-------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 田中美咲   | 22  | misaki@example.com
5  | 高橋健太   | 28  | kenta@example.com

COMMITを実行すると、トランザクション内の変更が正式に保存されます。

4. ROLLBACKの使い方(変更を元に戻す)

4. ROLLBACKの使い方(変更を元に戻す)
4. ROLLBACKの使い方(変更を元に戻す)

ROLLBACKは、トランザクション内で行った変更をすべて取り消す命令です。

間違ったデータを更新してしまった場合などに役立ちます。

実行前


id | name       | age | email
---+------------+-----+-------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 田中美咲   | 22  | misaki@example.com

START TRANSACTION;

UPDATE users
SET age = 99
WHERE id = 2;

ROLLBACK;

実行後(元に戻る)


id | name       | age | email
---+------------+-----+-------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 田中美咲   | 22  | misaki@example.com

ROLLBACKを実行すると、トランザクション開始前の状態に戻ります。

カテゴリの一覧へ
新着記事
New1
MySQL
MySQL EXPLAINのkey列とは?インデックス使用状況を初心者向けにわかりやすく解説【SQLクエリ分析・パフォーマンス改善】
New2
MySQL
MySQLのデータベースとスキーマ設計を完全解説!初心者でもわかる考え方と基本
New3
PostgreSQL
PostgreSQLのデータベースとスキーマとは何か?
New4
PostgreSQL
PostgreSQLとクラウドDB(Amazon RDS・Aurora)を初心者向けに完全解説|オンプレミスとの違いと仕組みがわかる
人気記事
No.1
Java&Spring記事人気No1
PostgreSQL
PostgreSQL初心者ガイド!拡張機能(Extensions)でデータベースがもっと便利に!
No.2
Java&Spring記事人気No2
MySQL
MySQLのLIMITの使い方を完全解説!初心者でも理解できるSQLの取得件数制御(ORDER BY・LIMIT入門)
No.3
Java&Spring記事人気No3
PostgreSQL
PostgreSQLでよく使うデータ型一覧(文字列・数値・日付)
No.4
Java&Spring記事人気No4
PostgreSQL
PostgreSQLのバージョン別主要新機能を徹底解説!初心者でもわかる進化のポイントと特徴
No.5
Java&Spring記事人気No5
PostgreSQL
PostgreSQLのORDER BYの基本(昇順・降順)
No.6
Java&Spring記事人気No6
PostgreSQL
PostgreSQLのWHERE句を完全解説|初心者でもわかる条件指定の基本と使い方
No.7
Java&Spring記事人気No7
PostgreSQL
PostgreSQLの標準SQL対応度とは?初心者向けにデータベースの基本を徹底解説
No.8
Java&Spring記事人気No8
PostgreSQL
PostgreSQLのREPEATABLE READを完全解説!トランザクション分離レベルとACID特性を初心者向けにやさしく理解