[SQL] νΈλμμ
νΈλμμ μ DBμ ν΅μ¬ κΈ°λ₯ μ€ νλλ€.
λ³΄ν΅ λ°μ΄ν°λ² μ΄μ€μ λ³Έμ§μ μ΄μΌκΈ°ν λ κ±°λ‘ λλ κ² μ€ νλκ° μμμ±μ΄λ€.
μΌμ μ€ν λ¨μλ₯Ό λ¬Άμ΄μ, κ·Έκ² νλμ κΈ°λ³Έ λ¨μλ‘ λμν μ μμ΄μΌ νλ€λ κ²μ΄λ€.
νλ² μλ₯Ό λ€μ΄λ³΄κ² λ€.
μλΉμλ₯Ό λνλ΄λ A ν
μ΄λΈμ΄ μκ³ , νλ§€μλ₯Ό λνλ΄λ B ν
μ΄λΈμ΄ μλ€.
λ§μ½μ κ±°λλ₯Ό ν΄μ Aκ° Bμκ²μ 물건μ ꡬ맀νλ€λ©΄, μΌλ°μ μΌλ‘λ Aλ λμ΄ μκ°λκ³ λμ λ¬Όνμ΄ μ§κΈλ κ²μ΄κ³ , Bλ λμ΄ μΆκ°λκ³ λ¬Όνμ΄ μ€μ΄λ€ κ²μ΄λ€. μ΄ κ±°λλ νλμ μμ±λ μμ
μ΄μ΄μΌ νλ€.
λ§μ½ μ€κ°μ μ€λ₯κ° λμ Aμ λλ§ μ€μ΄λ€κ³ λ¬Όνμ΄ λ€μ΄μ€μ§ μλλ€λ©΄ μ΄λ μ¬κ°ν λ¬Έμ κ° λλ€.
κ·Έλμ λ°λμ§ν λ‘μ§μ΄λΌλ©΄ μ€λ₯ λ°μ μ μ무κ²λ μμ λμ§ μμμΌ νλ€.
μ΄λ₯Ό κ°λ¨ν μνν μ μκ² ν΄μ£Όλ κ²μ΄ λ°λ‘ νΈλμμ
μ΄λ κΈ°λ₯μ΄λ€.
μ¬λ¬κ°μ 쿼리λ₯Ό νλμ νΈλμμ
μΌλ‘ λ¬Άμ΄μ, μμ μ±κ³΅, μλλ©΄ μμ μ€ν¨μ λλ‘λ§ κ²°κ³Όλ₯Ό ꡬλΆν μ μλ κ²μ΄λ€.
νλ² λλ €λ³΄λ©΄μ μ΄ν΄λ³΄μ.
ν
μ€νΈ νκ²½μ PostgreSQLμ΄λ, λ€λ₯Έ RDBλ€λ λ³ μ°¨μ΄λ μμ κ²μ΄λ€.
λμΆ© idκ°κ³Ό ν μ€νΈκ°μ κ°μ§λ ν μ΄λΈμ΄ μλ€.


νΈλμμ
μ μμμ begin transactionμΌλ‘ μνν μ μλ€.
μ΄μ λΆν° μ΄ μ°κ²°μμ μ€νλλ 쿼리λ€μ μ λΆ μ΄ νΈλμμ
μμ 'κ°νλ€.'

λ‘μ° νλλ₯Ό μμ ν΄λ΄€λ€.
μ μμ μΌλ‘ μμ νλ€κ³ λ¨κ³ ,
selectν΄λ΄λ μ μμ λ κ²μ νμΈν μ μλ€.

μ΄ μνμμ μ μ°κ²° λ§κ³ , ν°λ―Έλ νλ λ μ΄μ΄μ μ μνκ³ λκ°μ΄ selectλ₯Ό ν΄λ΄€λ€.
μ? λ°λμ§ μμ κ²μ νμΈν μ μλ€.
λ°©κΈ μνν κ·Έ μμ
μ νΈλμμ
μμμ μ€νλκΈ° λλ¬Έμ, κ·Έ μμμλ§ κ°νμκ³ μ€μ λ‘λ μ μ©λμ§ μμκΈ° λλ¬Έμ΄λ€.
λ€μ λμκ°μ, rollbackμ μ³λ΄€λ€.
κ·ΈλΌ μμ νλκ² λ€μ μ볡λλ€.
λ³΄ν΅ λ νλλΌλ μ€λ₯κ° λ°μνκ±°λ μλͺ»λ κ² μμΌλ©΄ νμ λ‘€λ°±μΌλ‘ νΈλμμ
λ΄μ μμ
μ μ λΆ μ·¨μν΄λ²λ¦°λ€.
μ€νν λ΄μ©λ€μ μ무 λ¬Έμ λ μλ€λ©΄, λ°λλ‘ κ·Έλ₯ commit λͺ
λ Ήλ§ μ¬μ©νλ©΄ λλ€.
μ΄κ±΄ νΈλμμ
μμ μνν λ΄μ©λ€μ μ λΆ μ€μ DBμ λ€ μ μ©νλ€.

μκ°λ³΄λ€ κ°λ¨νλ€.
begin transaction.
commit
rollback
μ΄ μ
λ§ μλ©΄ λλ€.