λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

STUDY/DATABASE

MYSQL - TCL(νŠΈλžœμž­μ…˜μ œμ–΄μ–΄)

λ°˜μ‘ν˜•
νŠΈλžœμž­μ…˜ ?
    ν•˜λ‚˜μ˜ 논리적인 μž‘μ—… λ‹¨μœ„
    μ—¬λŸ¬ 개의 DML이 ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μ„ ꡬ성할 수 있음(insert, update, delete)
    ν•˜λ‚˜μ˜ DDL이 ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μ„ ꡬ성함(create, alter, drop, truncate)

 

1. commit

    : λ³€κ²½μž‘μ—…μ„ 영ꡬ히 μ €μž₯

2. rollback

    : λ³€κ²½μž‘μ—…μ„ νŠΈλžœμž­μ…˜ 처음으둜 되돌림

commit;
-------------------------------------------
Transection1(start)-> 		insert ---;
				update ---;
                           	update ---;
                          	  commit;
 <- Transection1(end)
 ------------------------------------------
Transection2(start)-> 		delete ---;
				update ---;
                         	   rollback;
 <- Transection2(end)
 ------------------------------------------
  T(start, end) -> create table ---;(DDL)
  		  (auto commit 내포)
-------------------------------------------
T(start) -> 			insert ---;
	  			update---;
            			create table---;
          			(autocommit)
<- T(end)

 

3. savepoint

    : νŠΈλžœμž­μ…˜ 진행 쀑 λ˜λŒμ•„κ°ˆ 지점을 생성 ν•˜λŠ” λͺ…λ Ήμ–΄ (쀑간 μ €μž₯ x)

    savepoint 생성 : create savepoint 포인트λͺ…;

    savepoint둜 되돌리기 : rollback to 포인트λͺ…;

    νŠΈλžœμž­μ…˜ μ’…λ£Œ μ‹œ μžλ™ μ‚­μ œλ¨.

-----------------------------
T(start)->
		update ---;
   		savepoint A;
		update ---;
     	  	delete ---; -- (μ—¬κΈ°μ„œ μ·¨μ†Œ)
     	 	savepoint B;
      		insert ---;
      		rollback to A ( 처음 update μž„μ‹œλ°μ΄ν„° μƒνƒœ)
            .
            .
            .
            commit; or rollback;
<- T(end)

rollback : νŠΈλžœμž­μ…˜μ˜ 처음으둜 되돌림 => νŠΈλžœμž­μ…˜ μ’…λ£Œ o

rollback to : ν•΄λ‹Ή 포인트 μ§€μ μœΌλ‘œ 되돌림 =>νŠΈλžœμž­μ…˜ μ’…λ£Œ x


μ—°μŠ΅!           

 * auto-commit transacrions μ„€μ • ν•΄μ œ ν›„

ⓐ 101번 사원 salary λ³€κ²½ & savepoint A생성

β“‘ 102번 사원 salary λ³€κ²½ & savepoint B생성

β“’ 102번 사원 salary λ³€κ²½ μ·¨μ†Œ -------> A둜 rollback

β““ 102번 사원 salary λ³€κ²½ μ „μœΌλ‘œ λ‘€λ°± μ™„λ£Œ  ------- 아직 μž„μ‹œλ°μ΄ν„° μƒνƒœ 

  => commit 해야함

μ €μž₯ μ™„λ£Œ!

λ°˜μ‘ν˜•

'STUDY > DATABASE' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

MYSQL -DDL(데이터 μ •μ˜μ–΄)  (0) 2022.05.06
MYSQL - μ—°μŠ΅λ¬Έμ œ(DML)  (0) 2022.05.02
MYSQL - DML_데이터 μ‚­μ œ(delete)  (0) 2022.05.02
MySQL - 단일 ν–‰ ν•¨μˆ˜(λ¬Έμžν•¨μˆ˜)  (0) 2022.04.15
MySQL - JOIN  (0) 2022.04.12