LoginSignup
0
2

MySQLのトランザクション制御

Last updated at Posted at 2023-05-13

MySQL徹底入門で紹介されているトランザクション制御についてメモ。

START TRANSACTION 〜 COMMIT or ROLLBACKは基本的なので割愛し、その他の内容について紹介。

暗黙のトランザクション制御

トランザクションの実行中に電源が落ちるなどでサーバーが停止してしまった場合、次回起動時に自動的にROLLBACLされる

START TRANSACTION;
-- いくつか実行して途中で落ちた。
-- 次回起動時に自動で↓
ROLLBACK; 

SAVEPOINT

文字通りだが、ゲームのようにSAVEPOINTを置くことが可能で、ROLLBACK時にどこまで戻すかを指定可能。

START TRANSACTION;

SAVEPOINT save1;
-- 処理
SAVEPOINT save2;
-- 処理
-- ここで失敗
ROLLBACK TO save2;
-- 処理
COMMIT;

オートコミットモード

MySQLのデフォルトの動作として、クエリ実行すると即コミットされる(オートコミットモード)が、それを解除することも可能

SET AUTOCOMMIT=0; -- 0でオートコミット解除
SET AUTOCOMMIT=1;  -- 1で戻せる
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2