괴발개발

[강의 정리]TRANSACTION 본문

BACK END/SPRING

[강의 정리]TRANSACTION

dinoelll 2023. 3. 20. 23:08

[transaction의 특징]

1. 쪼갤 수 없는 업무 처리의 단위 (쇼핑몰 주문 같이 , 한 뭉탱이로 이뤄져야 되는거)

2. ALL OR Nothing

-- 1) COMMIT : (데이터를 변경한)실행한 쿼리를 확정 한다.
select @@AUTOCOMMIT; -- auto commit 여부(1:true, 0:false)

set autocommit = 0; -- auto commit 기능 OFF
-- auto commit 을 OFF 해고 CREATE, ALTER, DROP, TRUNCATE 는 취소가 안된다.

-- 2) ROLLBACK :  (데이터를 변경한)실행한 쿼리를 취소한다.
commit; -- 실행한 쿼리를 확정
select * from employees;
-- emp_no 117 ~ 130 까지 삭제
delete from employees where emp_no between 117 and 130;
rollback; -- 지난 쿼리 되돌리기

-- 신규 작업(insert, update, delete)이 확정되면 반드시 commit 을 해 줄 것!!!
-- 이후에 직접 서비스(웹)에서 확인 할 것

 

1. 일단 커밋(commit)을 끄고 수정해야 한다. (자동 저장 안되게) -> 그래야 롤백(rollback)이 가능

2. 그리고 작업 다 한 후에 커밋(commit)해줘야한다. -> 안그러면 나는 된 것 처럼 보여도 , 네트워크 상에서는 안나온다....ㄷㄷ;

* 롤백과 커밋은 언제 사용하냐면, 

두 가지 로직이 한 번에 진행될 때(한번에 묶어야  할 때)

게시판 클릭-> 상세페이지,- ,하면 조회수가 올라가야 하는데 

에러가 나서 그냥 조회수만 올라가면 안되지, 

그러면 롤백 해줘야 함.

 

'BACK END > SPRING' 카테고리의 다른 글

exists 정리!  (0) 2023.03.23
질문  (0) 2023.03.21
Shallow Copy  (0) 2023.03.19
중요하게 강조하신거 - bean이랑 write (파생된거 까지)  (0) 2023.03.14
[퀴즈 정리]D-44 - nio, thread(work, 익명, 상속, 구현)  (0) 2023.03.14
Comments