CREATE TABLE test_table (
id INT PRIMARY KEY,
value VARCHAR(50)
);
INSERT INTO test_table (id, value) VALUES (1, 'one');
-- 트랜잭션 1: 데이터 변경
START TRANSACTION;
UPDATE test_table SET value = 'two' WHERE id = 1;
-- 데이터 상태 확인 (트랜잭션 중)
SELECT id, value, trx_id, roll_ptr FROM information_schema.innodb_trx;
-- 결과 (예제):
-- id | value | trx_id | roll_ptr
-- -----|-------|--------|----------
-- 1 | two | 1001 | 0x12345678 (Undo 로그 위치)
-- 트랜잭션 롤백
ROLLBACK;
-- 데이터 상태 확인
SELECT * FROM test_table;
-- 결과:
-- id | value
-- -----|-------
-- 1 | one -- 변경 전 상태로 복원
-- 트랜잭션 Commit
COMMIT;
-- Undo 로그는 일정 시간이 지나면 정리됨