如何使用烧瓶进行交易SqlAlchemy
我需要向数据库请求data1,然后检查data1的条件,在其他任何更改数据库中data1的状态之前,保存新的data2。据我所知,这是使用SQL中的事务完成的,在SQLAlchemy中,这是使用engine.begin完成的如何使用烧瓶进行交易SqlAlchemy,sqlalchemy,flask-sqlalchemy,Sqlalchemy,Flask Sqlalchemy,我需要向数据库请求data1,然后检查data1的条件,在其他任何更改数据库中data1的状态之前,保存新的data2。据我所知,这是使用SQL中的事务完成的,在SQLAlchemy中,这是使用engine.begin完成的 with connection.begin(): r1 = connection.execute(table1.select()) connection.execute(table1.insert(), {"col1":
with connection.begin():
r1 = connection.execute(table1.select())
connection.execute(table1.insert(), {"col1": 7, "col2": "this is some data"})
我怎样才能用烧瓶炼金术做同样的事情
在我的情况下,我将有许多服务器在最后,如果有两个
来自两个用户的会话,在运行不同flask的不同服务器上
应用程序,然后如何执行此代码事务功能,如果
两台服务器使用的数据库相同(仅在一台服务器上运行)
服务器)
flask sqlalchemy会在单独的会话(以及事务)中自动运行每个请求。这是通过SQLAlchemy ORM完成的,而您的示例代码使用SQLAlchemy核心。我不确定这是否是sql事务。在我看来,这只是会话事务。因此,同一用户一次不能做多件事。但是,如果用户很少,那么会话也很少,这可能会试图改变数据库的和平状态。在我的例子中,最后我将有许多服务器,如果在运行不同flask应用程序的不同服务器上有来自两个用户的两个会话,那么如果两个服务器使用的数据库相同(仅在一台服务器上运行),如何执行此代码事务功能