[DB] MySQL 트랜잭션(Transaction) 예시 및 정리

2020. 6. 10. 12:24DataBase/MySQL

반응형

■ 트랜잭션

트랜잭션의 사용은 어떠한 작업에 있어서 구간을 선정하고 해당 작업에 오류나 실수를 COMMIT을 실행하기 전까지 본 DB에 영향을 주지 않는것을 의미한다.


I. 자동 커밋(commit) 비활성화

설명) commit 을 실행하기 전까지의 작업을 본 서버에 영향을 주지 않는다.
  • set autocommit = 0

II. 트랜잭션 시작

설명) start transaction 또는 begin 둘다 사용가능하며, 수정 작업 이후 rollback 을 실행하면 트랜잭션을 시작했던 작업으로 돌아오고 수정내용은 적용되지 않는다.
  • 1) START TRANSACTION
  • 2) BEGIN

III. 수정 처리

1) 수정 전 데이터 확인

2) 수정 처리

설명) author 가 '유은정' 인 레코드의 title을 '산' 으로 변경

 

3) 수정 후 데이터 확인

IV. ROLLBACK 실행

설명) start transaction 혹은 begin 실행했던 작업 위치로 돌아간다.

 

1) 수정 처리한 레코드 확인

설명) author 가 '유은정' 인 레코드의 title이 '산' 에서  '바다' 로 변경되었다. 즉, 수정 전으로 작업위치가 돌아갔다는걸 확인할 수 있다.

III. 재수정 처리

1) 수정 처리

설명) author 가 '유은정' 인 레코드의 title을 '산' 으로 변경

 

3) 수정 후 데이터 확인

설명) author 가 '유은정' 인 레코드의 title을 '산' 으로 변경될걸 확인

 

IV. COMMIT 실행

설명) 수정 작업 저장

 

1) 수정 된 데이터 확인

설명) author 가 '유은정' 인 레코드의 title을 '바다' 가 아닌 '산' 으로 변경 저장된걸 확인

 

 

반응형

'DataBase > MySQL' 카테고리의 다른 글

[MySQL] CASE 문  (0) 2020.07.20
[MySQL] DATE_FORMAT 날짜데이터 형식 변환  (0) 2020.07.20
[DB] MySQL 서버 원격 접속  (0) 2020.06.01
[DB] MySQL SQL파일 실행 및 백업  (0) 2020.05.27
[DB] MySQL 제약조건 확인  (0) 2020.05.26