세션이 트랜잭션 중간에 종료되면 현재 MySQL 트랜잭션이 MySQL에 의해 롤백되고 종료된다고 가정합니다. 이는 현재 트랜잭션에서 수행된 모든 데이터베이스 변경 사항이 제거됨을 의미합니다. 세션이 종료될 때 n 암시적 롤백이라고 합니다.
예시
테이블 'marks'에 다음 값이 있다고 가정합니다.
mysql> Select * from marks; +------+---------+-----------+-------+ | Id | Name | Subject | Marks | +------+---------+-----------+-------+ | 1 | Aarav | Maths | 50 | | 1 | Harshit | Maths | 55 | | 3 | Gaurav | Comp | 69 | | 4 | Rahul | History | 40 | | 5 | Yashraj | English | 48 | | 6 | Manak | History | 70 | +------+---------+-----------+-------+ 6 rows in set (0.00 sec) mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec) mysql> UPDATE marks SET Name = ‘Yash’ Where id = 5; Query OK, 1 row affected (0.06 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> quit; Bye
위의 예에서 테이블의 값을 업데이트한 후 quit 문을 실행하여 세션을 종료합니다. 세션을 다시 시작한 후 테이블을 확인하면 트랜잭션 중간에 세션이 종료되기 때문에 업데이트된 값은 MySQL에 의해 롤백되었습니다.