要获取SQLAlchemy中受影响的行数,您可以使用result.rowcount
属性。result
对象是execute()
方法的返回值,它包含了执行结果的元数据。以下是一个示例:
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
# 创建数据库引擎
engine = create_engine('sqlite:///example.db')
# 创建会话
Session = sessionmaker(bind=engine)
session = Session()
# 定义一个模型
class User(object):
def __init__(self, id, name):
self.id = id
self.name = name
# 更新操作
update_query = "UPDATE users SET name = 'new_name' WHERE id = 1"
result = session.execute(update_query)
# 获取受影响的行数
affected_rows = result.rowcount
print(f"受影响的行数:{affected_rows}")
# 提交事务
session.commit()
# 关闭会话
session.close()
在这个示例中,我们首先创建了一个SQLite数据库引擎,然后创建了一个会话。接下来,我们定义了一个User
模型。然后,我们执行了一个更新操作,将id
为1的用户的name
更新为new_name
。最后,我们使用result.rowcount
获取受影响的行数,并将其打印出来。
请注意,这个示例仅适用于SQLite数据库。对于其他数据库,您需要根据具体情况进行调整。
领取专属 10元无门槛券
手把手带您无忧上云