zoukankan      html  css  js  c++  java
  • MySQL数据库默认的存储引擎类型是MyISAM并不支持事务的坑,要把存储类型改为InnoDB

    今天无意间发现一段netcore使用事务的代码,同样的写法在mssql中是有效的,而放在mysql数据库中就没效果,怎么样都会直接提交。奇怪得很以为代码有问题
    using (TransactionScope Scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
    {

    	if(true)
                {
                    Scope.Complete();
                    return; //(shopResult?.ToString(), request.UserId);
                }
    
    
    
        }
    

    最后搜索到篇文章,讲到数据表存储类型的问题,还真是坑。
    https://www.cnblogs.com/wahaccp/p/3894243.html
    就像文中提到的
    MySQL数据库默认的存储引擎类型是MyISAM,这种存储引擎类型不支持事务处理。

    在MySQL中,只有InnoDB存储引擎类型的数据表才能支持事务处理。

    因此,如果想让MySQL支持事务处理,只要将数据表修改为InnoDB存储引擎类型即可
    修改MYSQL的配置文件

    创建新表时将使用的默认存储引擎

    default-storage-engine=InnoDB
    改完数据表默认InnoDB类型mysql要重启一下才会再建表时生效

    由于是刚切换mysql数据库使用没多少个项目,一直也没注意,以此记录。

  • 相关阅读:
    12.22冲刺总结
    Android远程服务
    短信电话监听
    Android本地服务
    意图
    多线程下载
    异步HTTP请求
    提交数据到服务器
    通过HTTP访问网络资源
    观察者
  • 原文地址:https://www.cnblogs.com/hmfl/p/15508611.html
Copyright © 2011-2022 走看看