我正在使用 GAE 和 Cloud SQL。
我似乎看不到文档中提到的这一点,所以我想我会问只是为了澄清我的理解。
是交易分组的标准方法,即:
def do_something_in_transaction(...)
update my CloudSQL database record
taskqueue.add(url='/path/to/my/worker', transactional=True)
...
db.run_in_transaction(do_something_in_transaction, ....)
假设适用于云 SQL?
我也可以在run_in_transaction通话期间更新/插入/删除多个记录(即我需要的任意数量)吗?
即:
def do_something_in_transaction(...)
x_id = insert record into table x
update table y record with x_id
insert record into table a
insert record into table b
… etc
taskqueue.add(url='/path/to/my/worker', transactional=True)
提前感谢,马 特
鉴于它是数据库组件的一部分,我认为run_in_transaction特定于数据存储。
对于 CloudSQL,请使用 SQL 事务命令 START TRANSACTION, COMMIT, ROLLBACK。