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

ν”„λ‘œκ·Έλž˜λ° 곡뢀/Oracle

[ex27] transaction

ex27_transaction.sql
    
    νŠΈλžœμž­μ…˜, Transaction
    - λ°μ΄ν„°λ₯Ό μ‘°μž‘ν•˜λŠ” μ—…λ¬΄μ˜ μ‹œκ°„적 λ‹¨μœ„
    - μΌλ ¨μ˜ μ‚¬κ±΄μ˜ μ§‘ν•©. ex) μ€ν–‰μ—μ„œ λˆμ„ μΈμΆœν•˜λŠ” ν–‰λ™(1 ~ 8번 ν–‰λ™)
    - 1개 μ΄μƒμ˜ λͺ…λ Ήμ–΄λ‘œ κ΅¬μ„±λœ μž‘μ—… λ‹¨μœ„
    
    νŠΈλžœμž­μ…˜ λͺ…λ Ήμ–΄
    - DCL, TCL
    1. commit
    2. rollback
    3. savepoint

 

commit; -- μ΄ μ‹œκ°λΆ€ν„° μƒˆλ‘œμš΄ νŠΈλžœμž­μ…˜μ΄ μ‹œμž‘λœλ‹€!! > insert, update, delete만 νŠΈλžœμž­μ…˜μ— ν¬ν•¨λœλ‹€.

-- μš°λ¦¬κ°€ ν•˜λŠ” λͺ¨λ“  insert, update, deleteλŠ” λ°μ΄ν„°λ² μ΄μŠ€μ— μ μš©λ˜μ§€ μ•ŠλŠ”λ‹€.
-- > μž„μ‹œλ‘œ λ©”λͺ¨λ¦¬μ— μ μš©λœλ‹€. > μ‹€μ œ DBμ—λŠ” μ μš©μ΄ μ•ˆλœλ‹€.

commit;   -- ν˜„μž¬ νŠΈλžœμž­μ…˜μ—μ„œ ν–ˆλ˜ λͺ¨λ“  λͺ…λ Ήμ–΄λ₯Ό μžˆμ—ˆλ˜ μΌλ‘œ λ§Œλ“€μ–΄λΌ
rollback; -- ν˜„μž¬ νŠΈλžœμž­μ…˜μ—μ„œ ν–ˆλ˜ λͺ¨λ“  λͺ…λ Ήμ–΄λ₯Ό μ—†μ—ˆλ˜μΌλ‘œ λ§Œλ“€μ–΄λΌ.


-- rollback μ§ν›„ > μ΄μ „ νŠΈλžœμž­μ…˜ μ™„λ£Œ > μƒˆλ‘œμš΄ νŠΈλžœμž­μ…˜μ΄ μ‹œμž‘λœλ‹€.

 


    νŠΈλžœμž­μ…˜μ΄ μ–Έμ œ μ‹œμž‘ν•˜κ³  μ–Έμ œ λλ‚˜λŠ”μ§€?
    
    μƒˆλ‘œμš΄ νŠΈλžœμž­μ…˜μ΄ μ‹œμž‘ν•˜λŠ” κ²½μš°
    1. commit μ‹€ν–‰ μ§ν›„
    2. rollback μ‹€ν–‰ μ§ν›„
    3. ν΄λΌμ΄μ–ΈνŠΈ μ ‘속 μ§ν›„(둜그인)
    
    ν˜„μž¬ νŠΈλžœμž­μ…˜μ΄ μ’…λ£Œλ˜λŠ” κ²½μš°
    1. commit μ‹€ν–‰ > ν˜„μž¬ νŠΈλžœμž­μ…˜μ„ DB에 λ°˜μ˜ν•¨
    2. rollback μ‹€ν–‰ > ν˜„μž¬ νŠΈλžœμž­μ…˜μ„ DB에 λ°˜μ˜ μ•ˆ ν•¨
    3. ν΄λΌμ΄μ–ΈνŠΈ μ ‘속 μ’…λ£Œ
        a. μ •상 μ’…λ£Œ
            - ν˜„μž¬ νŠΈλžœμž­μ…˜μ— μ•„직 λ°˜μ˜ μ•ˆλœ λͺ…령이 λ‚¨μ•„μžˆμœΌλ©΄ μ‚¬μš©μžμ—κ²Œ μ§ˆλ¬Έ?
        b. λΉ„정상 μ’…λ£Œ
            - rollback μ²˜λ¦¬(μ—†μ—ˆλ˜ μΌ)
    4. DDL μ‹€ν–‰
        a. create, alter, drop > μ‹€ν–‰ > κ·Έ μ¦‰μ‹œ commit λ™λ°˜!!!!! > Auto Commit
            - μœ„μ˜ ν–‰λ™μ€ DB κ΅¬μ‘° λ³€κ²½ > λ°μ΄ν„° μ˜ν–₯ O > μ‚¬μ „에 λ―Έλ¦¬ μ €μž₯
    

 


savepoint

-- 3. savepoint
-- rollback μ‹œμ μ„ μ‚¬μš©μžκ°€ λ§ˆμŒλŒ€λ‘œ μ •μ˜

commit;

select * from tblTran;

-- κΉ€μ’…μ„œ
update tblTran set jikwi = '이사' where name = 'κΉ€μ’…μ„œ'; --κ°€

savepoint a; --쀑간 μ €μž₯

select * from tblTran;

--ν—ˆκ²½μš΄
delete from tblTran where name = 'ν—ˆκ²½μš΄'; --λ‚˜

savepoint b; --쀑간 μ €μž₯

insert into tblTran values ('ν•˜ν•˜ν•˜', 'κΈ°νšλΆ€', '사원'); --λ‹€


rollback to b;

select * from tblTran;

rollback to a;

select * from tblTran;

commit;
rollback;

'ν”„λ‘œκ·Έλž˜λ° 곡뢀 > Oracle' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[ex29] PL/SQL  (0) 2023.03.30
[ex28] modeling  (0) 2023.03.30
[ex26] Hierarchical Query  (0) 2023.03.30
[ex25] with  (0) 2023.03.30
[ex24] rank  (0) 2023.03.30