事务处理不支持的可能程序外问题。

今天在调试个接口,因为代码别人写的, 在使用到事务操作的时候,调用别人写的事务方法总是没有事务回滚的效果。测试半天,以为自己代码问题。各种百度请教。最终发现,原来事务操作是要有数据库存储引擎支持才可以的。

 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_statements
FROM    information_schema.tables AS tb
WHERE   table_schema = @DATABASE_NAME
AND     `ENGINE` = 'MyISAM'
AND     `TABLE_TYPE` = 'BASE TABLE'
ORDER BY table_name DESC;

原文链接http://blog.163.com/litianyichuanqi@126/blog/static/1159794412014111610229847/;

哈哈,直接生成所有需要修改的表的mysql命令。

 

然后把这些结果复制到mysql工具里去再运行下,搞定。

转载于:https://www.cnblogs.com/phpjinggege/p/5867830.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值