之前在【mysql】MySQLdb中的事务处理中用autocommit和commit()以及rollback()实现了事务处理。
但后来,用同样的代码在另一个数据库中运行却失败了。找了一个下午的原因。后来发现是MyISAM存储引擎不支持事务导致的。而之前的表用的是InnoDB,支持事务。
显示当前autocommit值:
show VARIABLES like '%autocommit%';
设置autocommit为False
set autocommit = 0;
查看数据库db_test的表table_test使用的存储引擎
show TABLE STATUS FROM db_test WHERE name = "table_test";
MyISAM和InnoDB区别:
MyISAM效率更高,但不支持事务,不支持外键。
InnoDB效率略低,支持事务和外键。