mysql的事务失效问题

MyISAM是指Mysql的默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默认使用Myisam。
MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力

InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。

show create table 表名;

查看当前表是用什么引擎

mysql> show create table user;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                               |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
| user  | CREATE TABLE `user` (
  `id` int(11) NOT NULL default '0',
  `name` varchar(20) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

ENGINE=InnoDB 则支持事务,如果是MyISAM将不支持事务操作

修改表引擎

alter table 表名 engine=InnoDB;

猜你喜欢

转载自bingodin.iteye.com/blog/1680701