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数据库使用没多少个项目,一直也没注意,以此记录。

  • 相关阅读:
    几道cf水题
    cf水题
    一道cf水题
    c++list用法
    c++map用法
    c++ vector常见用法
    c++string,常见用法总结
    复变函数考试后的反思
    [FZYZOJ 1204] 零和问题
    [FZYZOJ 1202] 金坷垃
  • 原文地址:https://www.cnblogs.com/hmfl/p/15508611.html
Copyright © 2011-2022 走看看