insert & update ¶
SQLλ¬Έμμλ insert into values ꡬ문μ μ΄μ©ν΄ λ μ½λλ₯Ό μ½μ
νκ³ , update set where ꡬ문μ μ΄μ©ν΄ λ μ½λλ₯Ό μμ νλ€. νμ§λ§ djangoλ μ΄ λμ νλλ‘ λ³΄κ³ λ°μ΄ν°λ² μ΄μ€μ λ μ½λλ₯Ό μ½μ
νκ³ κ°±μ νλ μμ
μ, λͺ¨λΈλ‘ λ§λ κ°μ²΄λ₯Ό μ μ₯(save)νλ κ²μΌλ‘ μΆμννλ€. κΈ°λ³Έμ μΌλ‘ λͺ¨λΈν΄λμ€λ saveλ©μλλ₯Ό κ°μ§λ€. λ°λΌμ κ°λ°μκ° μμ±ν λͺ¨λΈλ saveλ©μλλ₯Ό κ°μ§λ©°, μ΄λ μ€λ²λΌμ΄λ© ν μ μλ€. μλ μμμ 보λ―μ΄ save λ©μλλ μλ‘λ§λ λ μ½λ νλμ μμ±μ λ°λΌμ μ λΉν μ½μ
κ³Ό κ°±μ μμ
μ μννλ€.

saveλ©μλλ μ°μ νμ¬ μ μ₯νλ €λ λ μ½λμ μ£Όν€λ₯Ό κ°μ§κ³ λ°μ΄ν°λ² μ΄μ€λ₯Ό κ²μνμ¬ λ μ½λλ₯Ό μ½μ ν μ§ κ°±μ ν μ§ κ²°μ νλ€. μ£Όν€λ₯Ό μ΄μ©ν΄ κΈ°μ‘΄μ λ μ½λλ₯Ό μ°Ύμ κ²½μ°μλ λ¨μν κ°±μ νλ€. μ£Όν€λ₯Ό μ΄μ©ν΄ λ μ½λλ₯Ό μ°Ύμ§ λͺ»ν κ²½μ°μλ λ¨μν μ½μ νλ€. λ§μΌ μ£Όν€κ° μλλ° λ μ½λκ° μλ κ²½μ°μλ μ½μ νμ¬λ μκ΄μ΄ μμΌλ―λ‘ μ½μ νλ€. λ€μμ saveλ©μλμ μ£Όμ λΆκΈ°μ μ 보μ¬μ£Όκ³ μλ€.
class Employee(models.Model): name= models.CharField(maxlength=100) email= models.EmailField()Employee λͺ¨λΈμ ν΄λΉνλ μλ‘μ΄ κ°μ²΄λ₯Ό λ§λ€κ³ saveλ©μλλ₯Ό μ΄μ©νλ©΄, λ°μ΄ν°λ² μ΄μ€μ μλ‘μ΄ λ μ½λλ₯Ό μ½μ νκ±°λ, κΈ°μ‘΄μ λ μ½λλ₯Ό κ°±μ νλ€. κΈ°μ‘΄μ μ½μ νμ§ μμκΈ° λλ¬Έμ μ²μ saveλ₯Ό νΈμΆνλ©΄ λ μ½λλ₯Ό μ½μ νκ³ , λ€μ λ² saveλ₯Ό νΈμΆνλ©΄ λ μ½λλ₯Ό κ°±μ νλ€. λ μ½λλ κ°μ²΄λ‘, λ μ½λμ μμ±μ κ°μ²΄μ λ©€λ² λ³μλ‘ μ·¨κΈνλ€.
e= Employee(name='John', email='John@django.com') e.save() # insert e.name= 'jack' e.save() # update

saveλ©μλλ μ°μ νμ¬ μ μ₯νλ €λ λ μ½λμ μ£Όν€λ₯Ό κ°μ§κ³ λ°μ΄ν°λ² μ΄μ€λ₯Ό κ²μνμ¬ λ μ½λλ₯Ό μ½μ ν μ§ κ°±μ ν μ§ κ²°μ νλ€. μ£Όν€λ₯Ό μ΄μ©ν΄ κΈ°μ‘΄μ λ μ½λλ₯Ό μ°Ύμ κ²½μ°μλ λ¨μν κ°±μ νλ€. μ£Όν€λ₯Ό μ΄μ©ν΄ λ μ½λλ₯Ό μ°Ύμ§ λͺ»ν κ²½μ°μλ λ¨μν μ½μ νλ€. λ§μΌ μ£Όν€κ° μλλ° λ μ½λκ° μλ κ²½μ°μλ μ½μ νμ¬λ μκ΄μ΄ μμΌλ―λ‘ μ½μ νλ€. λ€μμ saveλ©μλμ μ£Όμ λΆκΈ°μ μ 보μ¬μ£Όκ³ μλ€.
def save(self): # First, try an UPDATE. If that doesn't update anything, do an INSERT. record_exists = True if pk_set: # Determine whether a record with the primary key already exists. cursor.execute("SELECT 1 FROM %s WHERE %s=%%s LIMIT 1" % \ # If it does already exist, do an UPDATE. if cursor.fetchone(): cursor.execute("UPDATE %s SET %s WHERE %s=%%s" % \ else: record_exists = False if not pk_set or not record_exists: if pk_set: # If the PK has been manually set, respect that. else: # Create a new record with defaults for everything. cursor.execute("INSERT INTO %s (%s) VALUES (%s)" %
delete ¶
λ°μ΄ν°λ² μ΄μ€μμ λ μ½λλ₯Ό μμ νλ μμ
μ Modelν΄λμ€μ deleteλ©μλλ‘ μΆμννλ€. νμ§λ§ λ΄λΆμμ μ€μ λ‘ λ μ½λλ₯Ό μμ νλ λ©μλλ delete_objectsμ΄λ€.8 delete_objectsλ©μλλ μ§μ°λ €λ λ μ½λλ₯Ό μ°Έμ‘°νλ λ€λ₯Έ ν
μ΄λΈμ λ μ½λκΉμ§ ν¨κ» μμ νκ±°λ, μΈλν€λ₯Ό NULLκ°μΌλ‘ μ€μ νλ€. μλ₯Ό λ€μ΄ λ€μμ Riskν
μ΄λΈμμ ν λ μ½λλ₯Ό μμ νλ κ²½μ° μ΄λ₯Ό μ°Έμ‘°νλ Consequence, Control ν
μ΄λΈμ λ μ½λκΉμ§ ν¨κ» μμ νλμ§λ₯Ό 묻λ μ¬μ©μ νλ©΄μ΄λ€.

----
django/Example

----
django/Example