📜  sqlalchemy 更新行 (1)

📅  最后修改于: 2023-12-03 15:20:18             🧑  作者: Mango

sqlalchemy 更新行

SQLAlchemy是一种流行的Python ORM库,它可以让程序员更轻松地管理和操作数据库。在这篇文章中,我们将介绍如何使用SQLAlchemy来更新行。

更新单个值

要更新单个值,我们需要创建一个session对象,并使用query()方法来指定要更新的行。然后,我们可以使用update()方法来更改值。最后,我们需要调用commit()方法来提交更改。

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from mymodel import MyModel

engine = create_engine('mysql://user:password@host/mydatabase')
Session = sessionmaker(bind=engine)
session = Session()

# 更新 id 为 1 的记录
session.query(MyModel).filter_by(id=1).update({"name": "new name"})

session.commit()
更新多个值

如果要同时更新多个值,我们可以传递多个键值对到update()方法中。

# 更新 id 为 1 的记录
session.query(MyModel).filter_by(id=1).update({"name": "new name", "age": 30})

session.commit()
使用SQL表达式进行更新

SQLAlchemy还支持使用SQL表达式来更新行。例如,我们可以使用以下代码将id为1的记录的age值加5。

from sqlalchemy import update

stmt = update(MyModel).where(MyModel.id==1).values(age=MyModel.age + 5)

session.execute(stmt)
session.commit()
总结

在使用SQLAlchemy时,我们可以轻松地更新行。无论是更新单个值还是多个值,都可以通过query()方法和update()方法实现。并且,我们还可以使用SQL表达式来更新行,让我们对数据更加灵活。