日期:2014-05-16  浏览次数:20686 次

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;

?

?