START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
UPDATE
文は1つのトランザクションの一部です。START TRANSACTION
コマンドはトランザクションを開始します。COMMIT
コマンドはトランザクションを終了し、トランザクション内で行われたすべての変更を永続化します。UPDATE
文のどちらかに何か問題が発生した場合、ROLLBACK
コマンドを使用してトランザクション全体をロールバックできます(つまり、トランザクション内でこれまでに行われたすべての変更が破棄されます)。これにより、エラーが発生した場合でもデータベースは一貫した状態を維持できます。