我是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__,我应该不再为此担心吗?
User.__table__
有一个更好的方法吗?
谢谢!
在ORM级别上也有一些更新功能。它还不能处理任何棘手的情况,但是对于单行更新(或批量更新)的普通情况,它可以正常工作。它甚至会遍历所有已加载的对象,并将更新应用于它们。您可以像这样使用它:
session.query(User).filter_by(id=123).update({"name": u"Bob Marley"})