Transaction จบ Implicit ได้หลายทาง:
1. รัน DDL Statement
รัน CREATE, DROP DATABASE/TABLE/ROUTINE จะ Commit อัตโนมัติ (เพราะ DDL ไม่ Rollback ได้)
mysql> START TRANSACTION; mysql> INSERT INTO MARKS Values(3,'gaurav','Comp',69); mysql> Create table student(id int, Name Varchar(10),); Query OK, 0 rows affected (0.84 sec)
Transaction จบ Implicit ข้อมูล INSERT ถูก Commit ไม่ Rollback ได้:
mysql> Rollback; mysql> select * from marks; +------+---------+-----------+-------+ | Id | Name | Subject | Marks | +------+---------+-----------+-------+ | 1 | Aarav | Maths | 50 | | 1 | Harshit | Maths | 55 | | 3 | Gaurav | Comp | 69 | +------+---------+-----------+-------+ 3 rows in set (0.00 sec)
2. ตัดการเชื่อมต่อ Client Session
Disconnect -> Implicit Rollback
3. Kill Client Session
Kill -> Implicit Rollback
4. รัน START TRANSACTION ใหม่
เริ่ม Transaction ใหม่ -> Transaction เก่าจบ Implicit (Commit)
mysql> START TRANSACTION; mysql> INSERT INTO Marks Values(4, 'Rahul','History',40); mysql> INSERT INTO Marks Values(5, 'Yashraj','English',48); mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec)
Transaction แรก Commit อัตโนมัติ:
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 | +------+---------+-----------+-------+ 5 rows in set (0.00 sec)