【mysql】autocommit=0后,commit, rollback无效

时间:2022-05-20 17:42:12

之前在【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效率略低,支持事务和外键。