MySQL创建表不支持事务

需求:使用JDBC为指定数据库一次性创建多张表

博主刚开始的想法是希望一连串的建表动作就是一个事物,只要其中任何一个环节出现异常,就能引起事务回滚,结果就是创建数据库表失败。但是经过反复测试,发现创建其中一个数据库表失败并不影响创建其他数据库表成功,事务并没有发生回滚,因此怀疑创建表实际上是不支持事务的。

那么上面的需求怎么解决呢?
解决办法:使用try{}catch{}的方式将上面的动作“包”起来,一旦出现了异常,就catch捕获,然后在catch中删除表,删除数据等操作,“模拟回滚”的效果。

另外注意,MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/12/mysql-does-not-support-transactions-when-creating-tables/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
MySQL创建表不支持事务
需求:使用JDBC为指定数据库一次性创建多张表 博主刚开始的想法是希望一连串的建表动作就是一个事物,只要其中任何一个环节出现异常,就能引起事务回滚,结果……
<<上一篇
下一篇>>
文章目录
关闭
目 录