{category}

MySQL - トランザクション管理

START TRANSACTION

スタート トランザクション(トランザクションと同時実行制御

意味 トランザクションの開始


START TRANSACTIONとは?

START TRANSACTIONは、新しいトランザクションを開始するMySQLコマンドです。トランザクションとは、複数のデータベース操作をひとまとまりの処理として扱う機能で、このコマンドを使うことで、一連の操作を安全に実行できます。

START TRANSACTIONの具体的な使い方

送金処理の例

START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

SELECT * FROM accounts WHERE id IN (1, 2);

👇出力結果

Query OK, 0 rows affected (0.00 sec)

Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

Query OK, 0 rows affected (0.00 sec)

+----+--------+---------+
| id | name   | balance |
+----+--------+---------+
|  1 | User1  |    9900 |
|  2 | User2  |   10100 |
+----+--------+---------+
2 rows in set (0.00 sec)

この例では、口座間で100円の送金を行うトランザクションを開始しています。UPDATE文で残高を更新し、最後にCOMMITで変更を確定します。エラーが発生した場合は、ROLLBACKで変更を取り消すことができます。

START TRANSACTIONに関するよくある質問

Q. START TRANSACTIONの目的は?
A. START TRANSACTIONは新しいトランザクションを開始するためのコマンドです。これにより、複数のデータベース操作を一つのまとまりとして扱い、全ての操作が成功した場合のみ変更を確定できます。
Q. トランザクションの利点は?
A. トランザクションを使用することで、データの一貫性を保ち、複数の操作を安全に実行できます。例えば、銀行送金のように、一方の口座から引き落とし、もう一方の口座に入金する操作を確実に行えます。
Q. トランザクションの終了方法は?
A. トランザクションは通常、COMMITかROLLBACKで終了します。COMMITは変更を確定し、ROLLBACKは変更を取り消します。どちらも実行されないと、トランザクションは開いたままになります。

MySQLのSTART TRANSACTIONについても学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、MySQLのSTART TRANSACTIONやSAVEPOINT、REPEATABLE READ、RELEASE SAVEPOINT、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


MySQLを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!MySQLはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

SAVEPOINT

トランザクション内の中間地点

種類: セーブポイント

REPEATABLE READ

読取一貫性を保証

種類: 分離レベル

RELEASE SAVEPOINT

セーブポイントの削除

種類: セーブポイント

LIMIT

結果の行数制限

種類: 条件と並べ替え

準同期レプリケーション

バランスの良いデータ複製方式

種類: 高度なレプリケーション