Nếu phiên bị kill giữa giao dịch, MySQL rollback ngầm định giao dịch hiện tại. Tất cả thay đổi bị xóa.
Ví dụ chi tiết
Bảng marks có 6 hàng. Bắt đầu giao dịch, xóa hàng id=4:
mysql> START TRANSACTION; mysql> Delete from marks where id = 4; Query OK, 1 row affected (0.00 sec)
Mở cửa sổ khác, chạy SHOW PROCESSLIST tìm ID tiến trình (giả sử ID=2):
mysql> SHOW PROCESSLIST\G Id: 2 User: root Host: localhost:49303 db: query Command: Sleep Time: 22 State: Info: NULL
Kill tiến trình:
mysql> KILL 2; Query OK, 0 rows affected (0.00 sec)
Quay lại phiên đầu, chạy COMMIT:
mysql> COMMIT; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 4 Current database: query Query OK, 0 rows affected (1.01 sec)
Kiểm tra bảng - hàng id=4 vẫn tồn tại (rollback đã xảy ra):
mysql> Select * from marks; +------+---------+-----------+-------+ | Id | Name | Subject | Marks | +------+---------+-----------+-------+ | 1 | Aarav | Maths | 50 | | 1 | Harshit | Maths | 55 | | 3 | Gaurav | Comp | 69 | | 4 | Rahul | History | 40 | -- Vẫn ở đây | 5 | Yashraj | English | 48 | | 6 | Manak | History | 70 | +------+---------+-----------+-------+
Kết luận: KILL buộc MySQL rollback giao dịch đang chạy. Cơ chế an toàn dữ liệu.