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