트랜잭션이 성공적으로 커밋된 후, 해당 트랜잭션에 의해 생성 또는 수정된 데이터가 어떠한 상황에서도 보존되는 특징
트랜잭션이 완료되면 결과는 데이터베이스에 영구적으로 저장되며, 이후 시스템에 어떠한 문제가 생기더라도 데이터는 손상되지 않는다.
트랜잭션의 안전성을 보장하며, 데이터 손실 없이 시스템의 안정성을 유지하는데 중요한 역할을 담당
트랜잭션이 성공적으로 완료되면, 해당 트랜잭션에 의해 생성 또는 변경된 데이터는 데이터베이스에
COMMIT
명령을 통해 영구적으로 저장된다.
하지만, 트랜잭션 수행 도중 시스템이 비정상 종료되더라도, 시스템은 트랜잭션 로그(Transaction Log)를 통해 아직 커밋되지 않은 트랜잭션을 복구할 수 있다.
-- SPARTA 테이블을 생성합니다.
CREATE TABLE IF NOT EXISTS SPARTA
(
spartaId INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
spartaName VARCHAR(255) NOT NULL,
spartaAddress VARCHAR(255) NOT NULL
);
-- 1번째 트랜잭션을 실행합니다.
START TRANSACTION;
-- SPARTA 테이블에 더미 데이터 3개를 삽입합니다.
INSERT INTO SPARTA (spartaName, spartaAddress)
VALUES ('SPARTA1', 'SEOUL'),
('SPARTA2', 'BUSAN'),
('SPARTA3', 'DAEGU');
-- 1번째 트랜잭션을 DB에 적용합니다.
COMMIT;
-- 2번째 트랜잭션을 실행합니다.
START TRANSACTION;
-- SPARTA 테이블에 더미 데이터 3개를 삽입합니다.
INSERT INTO SPARTA (spartaName, spartaAddress)
VALUES ('SPARTA4', 'SEOUL'),
('SPARTA5', 'BUSAN'),
('SPARTA6', 'DAEGU');
-- 2번째 트랜잭션을 롤백합니다.
ROLLBACK;
-- 테이블의 상태를 확인합니다.
SELECT * FROM SPARTA;
참고자료: 스파르타 코딩클럽 노드 숙련주차 강의
정보 감사합니다😊