首页 > 代码库 > 事务处理不支持的可能程序外问题。
事务处理不支持的可能程序外问题。
今天在调试个接口,因为代码别人写的, 在使用到事务操作的时候,调用别人写的事务方法总是没有事务回滚的效果。测试半天,以为自己代码问题。各种百度请教。最终发现,原来事务操作是要有数据库存储引擎支持才可以的。
show ceate table 表名;
发现是我的是MyISAM的 再 show engines;
发现MyISAM是不支持事务 Transactions事务操作的,如图提示为NO;
然后我就准备要去修改表的存储引擎(MyISAM改成InnDB会一定程度降低数据库操作速度);
搜了下 网上说 这样 alter table table_name engine=innodb;这样一个个去改表引擎,太麻烦了,感觉有一步操作的命令,虽然我不会,然后继续搜, 找到了段代码。
SET @DATABASE_NAME = ‘name_of_your_db‘;SELECT CONCAT(‘ALTER TABLE `‘, table_name, ‘` ENGINE=InnoDB;‘) AS sql_statementsFROM information_schema.tables AS tbWHERE table_schema = @DATABASE_NAMEAND `ENGINE` = ‘MyISAM‘AND `TABLE_TYPE` = ‘BASE TABLE‘ORDER BY table_name DESC;
原文链接http://blog.163.com/litianyichuanqi@126/blog/static/1159794412014111610229847/;
哈哈,直接生成所有需要修改的表的mysql命令。
然后把这些结果复制到mysql工具里去再运行下,搞定。
事务处理不支持的可能程序外问题。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。