问答详情
源自:-

transactionTemplate编程式事务管理例子在我这里执行怎么不回滚?

transactionTemplate编程式事务管理例子在我这里执行怎么不回滚?

提问者:胡杨叶黄了 2015-10-13 19:53

个回答

  • By_no_means
    2016-01-29 11:32:00

    我也是这个问题,查看表DDL是发现type=MyISAM。总结下有2种解决方案

    • 在建表时指定表引擎

    drop table if exists tb_user;
    create table tb_user(
      id int primary key auto_increment,
      username varchar(50),
      password varchar(32),
      money int
    )type=InnoDB;
    • 表引擎修改为InnoDB

    alter table tb_user type=InnoDB;

    PS:如何修改 mysql 的默认建表引擎?

    修改 mysql 配置文件 my.ini,在 [mysqld] 区段加入一行 default-storage-engine=INNODB

    [mysqld]
    ## 默认表引擎的配置
    default-storage-engine=INNODB


  • 胡杨叶黄了
    2015-10-13 23:50:56

     已找到原因,mysql默认的表类型(引擎)为MyISAM,该类型不支持事务处理,将表类型改为支持事务的InnoDB即可