【问题标题】:Django / MySQL: How to do Autonomous Transactions (commit only sub-set of queries)?Django / MySQL:如何进行自主事务(仅提交查询子集)?
【发布时间】:2012-07-02 05:23:01
【问题描述】:

我正在使用 Django 和 MySQL。我需要能够做在 Oracle 中称为自治事务的事情,即只提交事务的一部分(或者,更确切地说,在事务中拥有事务)。我在两种情况下都需要这个(尽管我认为解决方案是一样的):

  1. 错误记录。我在错误表中记录错误并希望提交这些插入,即使我回滚所有其他事务。

  2. 我使用表来创建序列(使用 TABLE 序列和 LAST_INSERT_ID(),如下所述:http://dev.mysql.com/doc/refman/5.0/en/information-functions.html)。我想获取/更新这个序列,然后提交语句,从而为需要该序列的其他事务解锁表。即使我回滚其他事务,如果表增加也很好。

【问题讨论】:

    标签: mysql django transactions


    【解决方案1】:

    有趣的主题,显然 mysql 中没有这样的东西,但有人建议使用(针对您的日志表问题)myisam 表,因此由于它是外部事务,因此无论如何都会发布数据。


    我正在添加第二个答案,因为我刚刚找到了这个替代方案:您可以做的是处理来自与数据库中另一个用户的另一个连接的日志事务。

    Mysql 处理每个用户的连接池,因此它不会对主操作和日志操作使用相同的连接,从而允许您独立提交日志连接。

    【讨论】:

    • 我正在添加第二个答案,因为我刚刚想出了这个替代方案:您可以做的是处理来自与数据库中另一个用户的另一个连接的日志事务。 Mysql 处理每个用户的连接池,因此它永远不会为主要操作和日志操作使用相同的连接,从而允许您独立提交日志连接。
    猜你喜欢
    • 2014-07-19
    • 2017-07-26
    • 2012-01-23
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    相关资源
    最近更新 更多