인프런 커뮤니티 질문&답변

한건우님의 프로필 이미지
한건우

작성한 질문수

실전! FastAPI 입문

(실습) ORM 적용 - DELETE API

sqlalchemy delete 관련 질문

해결된 질문

작성

·

266

0

def delete_todo(session: Session, todo: ToDo) -> None:
    session.execute(delete(ToDo).where(ToDo.id == ToDo.id))
    session.commit()

Delete 부분 구현을 이렇게 하셨는데 session.delete 말고 session.execute 로 구현하신 이유가 있을까요?

sqlalchemy documentation에서도 example에는 이런식으로 되어있는데

# mark two objects to be deleted
session.delete(obj1)
session.delete(obj2)

# commit (or flush)
session.commit()

혹시 제가 모르는 인사이트가 있으신가 조심스레 여쭤봅니다

답변 1

1

신동현님의 프로필 이미지
신동현
지식공유자

안녕하세요! 특별한 의도를 가지고 execute()를 사용한 것은 아닙니다. 이제보니 delete() 문법이 더 간결하고 좋은 것 같네요 😃

지금 예시에는 해당되지 않지만, execute()를 사용하면 세밀하게 조건문을 조정할 수 있다는 장점이 있겠네요!

한건우님의 프로필 이미지
한건우
질문자

와 ㅎㄷㄷ 일요일에 빠른답변 감사합니다

한건우님의 프로필 이미지
한건우

작성한 질문수

질문하기