美文网首页Django知识与坑
django - 事务回滚失败Some non-transact

django - 事务回滚失败Some non-transact

作者: sun_wenming | 来源:发表于2018-07-07 14:17 被阅读1次

一个好的Django专题少不了您的贡献:点我进入专题

事务的使用方法,更多用法参考官网transactions

def viewfunc(request):
    # 默认autocommit 既生成一条sql就提交到数据库
    do_stuff()
    with transaction.atomic():
        # This code executes inside a transaction.
        do_more_stuff()

错误:
事务执行中遇到错误没有正常回滚,既默认的autocommit

原因产生在数据库上。找django的原因找了半天。。(背锅了)

最终检查控制台输出发现有这么一句话
Some non-transactional changed tables couldn't be rolled back
原因大致为:mysql数据表的引擎默认 为"MyISAM"不支持事务
解决:打开mysql配置文件 找到default-storage-engine=

支持 INNODB 引擎模式。修改为 default-storage-engine=INNODB 即可。
如果 INNODB 模式如果不能启动,删除data目录下ib开头的日志文件重新启动。

相关文章

  • django - 事务回滚失败Some non-transact

    一个好的Django专题少不了您的贡献:点我进入专题 事务的使用方法,更多用法参考官网transactions 错...

  • 埋个坑,这星期找时间测试下rabbitmq的回调

    队列失败的事务回滚啥的

  • Django ORM 事务 回滚

    在保存订单数据中,涉及到多张表(OrderInfo、OrderGoods、SKU)的数据修改,对这些数据的修改应该...

  • 数据库事务

    提交操作(事务成功) start transaction DML语句 commit 回滚操作(事务失败) star...

  • Oracle 回滚段undo

    Undo的作用 数据的回滚 一致性读 表的闪回(事务,查询的闪回..) 失败会话的恢复 回滚rollback操作 ...

  • Innodb中的undo log

    Innodb实现事务的原子性时,使用的是undo log,当事务失败时,就使用undo log回滚事务的修改。 使...

  • Mysql事务&隔离级别

    数据库事务:ACID特性 原子性: 事务中所有操作要么全部提交成功,要么全部失败回滚。 u...

  • 数据库-事务详解

    事务拥有四大特性 原子性一致性隔离性持久性 原子性事务中的所有动作要么全部提交成功,要么全部失败回滚(回滚是反向操...

  • 事务相关的问题总结

    一、事务回滚问题 二、事务失效问题 三、事务失效的解决办法 方式一:自己手动创建事务,提交事务,回滚事务(Spri...

  • laravel transaction 数据库事务

    laravel 提供专门的闭包的数据库事务,可以自动回滚事务也可以手动回滚事务

网友评论

    本文标题:django - 事务回滚失败Some non-transact

    本文链接:https://www.haomeiwen.com/subject/vduwuftx.html