π₯οΈ λ°μ΄ν°λ² μ΄μ€/SQL
[Oracle] TRANSACTION CONTROL νΈλμμ 컨νΈλ‘€
OR15A
2024. 1. 5. 17:22
TRANSACTIONμ κ°λ
- νΈλμμ . Tx
- λ Όλ¦¬μ μΈ μ 무μ μμ λ¨μ
- (μμ- κ³μ’μ΄μ²΄ = ‘μΆκΈ’ + ‘μ κΈ’ )
νΈλμμ μ μμ±
A | μμμ± Atomicity |
νλμ μμμ μΈ μμ
λ¨μλ‘ μ²λ¦¬ν¨. νλμ μμ μ΄λΌλ μ€ν¨νλ©΄ νΈλμμ μ μ²΄κ° μ€ν¨. νΈλμμ λ΄μ λͺ¨λ μμ μ λͺ¨λ μ±κ³΅ or λͺ¨λ μ€ν¨ν΄μ μμνλ‘ λ‘€λ°± |
C | μΌκ΄μ± Consistency |
νΈλμμ μμμ κ³Ό μ’ λ£ν DBλ νμ μΌκ΄λ μν μ μ§ |
I | λ
λ¦½μ± Isolation |
κ°κ°μ νΈλμμ
μ λ
립μ μΈ μμ
λ¨μ. νΈλμμ κ°μ λκΈ°ν μ μ§λ¨. |
D | μ§μμ± Durability |
νΈλμμ μ±κ³΅ν κ·Έ κ²°κ³Όλ μꡬμ μΌλ‘ DBμ μ μ₯λμ΄μΌ ν¨ |
νΈλμμ 컨νΈλ‘€
λͺ μμ νΈλμμ μ μ΄ λͺ λ Ήμ΄
λͺ λ Ήμ΄ | μ€λͺ |
COMMIT | λͺ¨λ λ°μ΄ν° λ³κ²½μ¬ν DBμ μμ ν λ°μ. νμ¬ νΈλμμ μ’ λ£. |
SAVEPOINT | νμ¬μ νΈλμμ μ SAVEPOIINT μ§μ ν¨. |
ROLLBACK TO μΈμ΄λΈ ν¬μΈνΈ μ΄λ¦ |
μμ§ μ μ₯μλ λ°μ΄ν° λ³κ²½μ¬νμ μ·¨μνκ³ νμ¬μ νΈλμμ
μ’
λ£ν¨. κ·Έλ₯ λ‘€λ°±=λ§μ§λ§ 컀λ°μνλ‘. |
μμμ νΈλμμ μ μ΄ λͺ λ Ήμ΄
λͺ λ Ήμ΄ | μ€λͺ |
μλ COMMIT =AUTO COMMIT |
DDLλͺ
λ Ή(ꡬ쑰κ΄λ ¨ λͺ
λ Ή) μ: CREATE TABLE DCLλͺ λ Ή(κΆνκ΄λ ¨ λͺ λ Ή) 컀λ°μ΄λ λ‘€λ°± μ€ν μ νκ³ SQL*Plusλ₯Ό μ μμ μ’ λ£ν¨ |
ROLLBACK TO μΈμ΄λΈ ν¬μΈνΈ μ΄λ¦ |
SQL*Plusμ λΉμ μμ μΈ μ’
λ£ μμ€ν μ€ν¨ |
- AUTO COMMIT
- ON/TRUE μν: λͺ λ Ήλ§λ€ 컀λ°ν¨. μ΄ κ²½μ° νΈλμμ μ΄ λΆκ°λ₯ν¨. OFF/FALSEλ‘ λ°κΎΈκ³ νκΈ°.
COMMITκ³Ό ROLLBACK μ /ν λ°μ΄ν° μν
ROLLBACK μ COMMIT μ |
β€λ°μ΄ν° μ΄μ μν 볡ꡬ κ°λ₯ (λ²νΌλ§ μν₯λ°μμ) β€νμ¬μ¬μ©μ SELECTλ¬ΈμΌλ‘ μμ κ²°κ³Ό νμΈκ°λ₯ β€λ€λ₯Έμ¬μ©μλ νμ¬μ¬μ©μμ μνμμ κ²°κ³Ό λͺ»λ΄ β€λ³κ²½λ νμ LOCKμ€μ λμ΄ λ€λ₯Έμ¬μ©μκ° λ³κ²½λΆκ°λ₯ (DBμ λ°μμ μλΌλ λ€λ₯Έμ¬λμ΄ μ λ ₯/μμ λͺ»ν¨) |
ROLLBACK ν | β€λ°μ΄ν°μ λν λ³κ²½μ¬ν μ·¨μ β€μ΄μ λ°μ΄ν° λ€μ μ¬μ μ₯λ¨ (DBμμ μλ‘ κ°μ Έμ¨λ€) β€κ΄λ ¨λ νμ λν LOCKμ΄ νλ €μ λ€λ₯Έμ¬μ©μκ° μ‘°μκ°λ₯ |
COMMIT ν | β€λ°μ΄ν°μ λν λ³κ²½μ¬ν DBμ λ°μλ¨ β€μ΄μ λ°μ΄ν°λ μμν μ¬λΌμ§ (λ°±μ μνμ λ) β€λͺ¨λ μ¬μ©μκ° λ΄κ° μμ ν κ²°κ³Όλ₯Ό λ³Ό μ μμ β€κ΄λ ¨λ νμ λν LOCKμ΄ νλ €μ λ€λ₯Έμ¬μ©μκ°ν μ‘°μ κ°λ₯ν¨ |