트랜잭션/ AUTO 트랜잭션/ ROLLBACK /COMMIT

uumin_.0115·2024년 8월 12일

DataBase

목록 보기
8/10

트랜잭션

  • 데이터베이스에서 사용되는 쪼갤 수 없는 업무 처리 단위
  • 원래는 한 개가 아니지만, 한개처럼 이뤄져야 하는 작업 단위
  • 원자성 (ALL OR NOTHING) : 될거면 되고, 안될거면 안되고
  • ex) 송금

AUTO 트랜잭션 : UPDATE /DELETE /INSERT 시 끄고 해준다.

만약 데이터 전부 delete 했다면?
: auto commit이 0이라면!! rollback으로 복구 가능

특정 데이터할 때는 auto commit을 끄는 것이 좋음

auto commit 설정 확인
select@@autocommit; -- 1이 나오면 설정됨, 0이 나오면 미설정됨 // 1 되어 있으면 큰일 난 것임

그럼 auto commit 켜고 끄는 방법은?
set autocommit = 1; -- 켠다. (기본)
set autocommit = 0; -- 끈다. (★★★★★★★★★ 주요 작업 시 이걸 해 줄것)

Rollback / Commit

  • Rollback : 직전 Commit으로 되돌아 가는 것
    - 다만, rollback은 데이터에 한정(INSERT, UPDATE, DELETE)!!
    - ex) root의 유저 삭제 등은 못 되돌림
  • Commit : 내가 실행한 명령어를 최종적으로 확정하는 것
                   (이걸 하고 나면 되돌릴 수 없다.) 
    select * from employees;
    commit; 
    delete from employees;
    rollback; 
profile
2024.06.20~

0개의 댓글