首页 > 数据库 >mysql事务回滚

mysql事务回滚

时间:2023-09-14 14:05:41浏览次数:46  
标签:ENGINE 回滚 JPA 事务 INNODB mysql


前几天发现程序有个Bug:使用JPA已经设置了回滚,但抛出异常后,提交的事务并没有回滚。

刚开始以为是JPA使用问题,debug了近2个多小时竟然找不到原因。

后来上网查了一下,才发现不是程序问题(坑爹啊,看来自己对mysql还是不熟),是数据库表问题(JPA自动建表)。


原因如下:


mysql建表时如果指定ENGINE=MyISAM,事务是无法回滚的(MyISAM引擎本身不支持事务)。


需要执行:
alter table [tablename] ENGINE=INNODB


指定为INNODB引擎才能支持事务管理。


更新完之后再执行程序,一切恢复正常了。


在这里记录一下,希望对看到的人有帮助。

标签:ENGINE,回滚,JPA,事务,INNODB,mysql
From: https://blog.51cto.com/u_6978506/7469698

相关文章

  • MySQL篇:bug2_ Navicate无法添加或更新子行-外键约束失败
    问题产生原因Mysql中如果表和表之间建立的外键约束,则无法删除表及修改表结构。解决办法解决方法是在Mysql中取消外键约束:SETFOREIGN_KEY_CHECKS=0;再添加值,然后再设置外键约束:SETFOREIGN_KEY_CHECKS=1;查看当前FOREIGN_KEY_CHECKS的值可用如下命令:SELECT@@FOR......
  • N天爆肝数据库——MySQL(2)
    (N天爆肝数据库——MySQL(2))链接:link这是csdn专栏链接,大家可以看一看,提提意见本篇文章,主要对DMLDQL进行知识总结和学习。期待和大家一起学习进步。DML-介绍DML(数据库操作语言),用来对数据库中表的数据记录进行增删改操作。添加数据(INSERT)修改数据(UPDATE)删除数据(DELET......
  • mysql 的用法
    MySQL是一个由瑞典MySQLAB公司开发的关系型数据库管理系统,属于Oracle旗下产品。它是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS应用软件之一。关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL......
  • MySQL 和 Python:无缝结合的数据库应用
    MySQL和Python都是广泛应用于软件开发的重要工具。MySQL是一种强大的关系型数据库管理系统,而Python则是一种灵活的高级编程语言。它们之间的紧密集成为开发人员提供了强大的数据存储和操作能力。本文将探讨MySQL和Python之间的关系,并提供一些示例代码来演示如何在Python......
  • MySQL体系架构
    1.背景刚入行时,大部分Java工程师对MySQL停留在一个黑盒的认识,包括我自己。最近一段时间,这几年通过项目实践与不断反思,对MySQL的新认知提升到一个新层次,供大家分享。下图是初始阶段的认识,就是对数据库建库、建表、建索引,然后执行增删改查操作。2.数据库驱动大家都知道,我们如......
  • Mysql 主从复制
    一、设计思路准备两个5.7版本的MySQL,一个用作主数据库,另一个用作从数据库。把主数据库做为写入数据库,从数据库作为读数据库。二、具体步骤准备两台数据库,可以本地配置两台Mysql数据库或者局域网两台Mysql数据库。1.先把你的mysql目录拷贝复制一份,复制出来的那份取名为mysql-......
  • MySQL DateTime 可以支持到毫秒
    DATETIMEDATETIME在数据库中存储的形式为:YYYY-MM-DDHH:MM:SS,固定占用8个字节。从MySQL5.6版本开始,DATETIME类型支持毫秒,DATETIME(N)中的N表示毫秒的精度。例如,DATETIME(3)表示可以存储3位的毫秒值。 推荐使用 DATETIME而非timestamp,因为 timestamp可能有......
  • Mysql慢查询优化
    Mysql慢查询优化实战效果:效率提升十倍左右优化前mysql>usetest_old;Databasechangedmysql>setprofiling='ON';QueryOK,0rowsaffectedmysql>showvariableslike'profiling';+---------------+-------+|Variable_name|Value|+--------......
  • mysql错误记录 - 关键字generated
    今天想直接操作flowable的表ACT_GE_BYTEARRAY表字段如下字段名字段含义ID表示唯一标识符的字符串,用于标识每个字节数组。REV_表示字节数组的版本号。NAME_表示字节数组的名称。DEPLOYMENT_ID_表示字节数组所属的部署ID。BYTES_表示存储在数据库中的字......
  • mysql 找不到配置文件?&如何解决Mysql自动关闭?
    解决Mysql安装之后没有my.ini配置文件问题:https://www.likecs.com/show-307410314.html如何解决MySQL自动关闭的问题(mysql一直自动关闭):https://www.dbs724.com/254927.htmlhttps://www.cnblogs.com/wl-blog/p/14917217.html......