2

我正在使用GAE和Cloud SQL。GAE,Cloud SQL和run_in_transaction

我似乎无法看到在文档中提到的这一点,所以我想我会问,只是为了澄清我的理解。

是分组数据的标准方法,即:

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) 

由于提前, 马特

回答

2

考虑到它的数据库组件的一部分,我认为run_in_transaction是特定于数据存储。

对于CloudSQL,使用SQL事务命令START TRANSACTION,COMMIT,ROLLBACK。

+0

是的。谢谢。希望我也会收到GAE团队的回复。 – Sway