본문 바로가기
파이썬

파이썬 SQLAlchemy: a better way for update with declarative?

by º기록 2020. 12. 6.
반응형

저는 SQLAlchemy 멍청이입니다.

선언 모드의 사용자 테이블이 있다고 가정 해 보겠습니다.

class User(Base):
    __tablename__ = 'user'
    id = Column(u'id', Integer(), primary_key=True)
    name = Column(u'name', String(50))

세션에로드 된 개체가없는 사용자의 ID를 알고 있으면 다음과 같이 해당 사용자를 업데이트합니다.

ex = update(User.__table__).where(User.id==123).values(name=u"Bob Marley")
Session.execute(ex)

User .__ table __ 사용이 싫습니다. 그만 걱정해야하나요?

이 작업을 수행하는 더 좋은 방법이 있습니까?

감사!

 

해결 방법

 

ORM 수준에서 일부 업데이트 기능도 있습니다. 아직 까다로운 경우는 처리하지 않지만 단일 행 업데이트 (또는 대량 업데이트)의 사소한 경우에는 잘 작동합니다. 이미로드 된 개체를 검토하고 업데이트도 적용합니다. 다음과 같이 사용할 수 있습니다.

session.query(User).filter_by(id=123).update({"name": u"Bob Marley"})

 

참조 페이지 https://stackoverflow.com/questions/2631935

 

 

반응형

댓글