If you receive the following message when trying to perform a
ROLLBACK
, it
means that one or more of the tables you used in the
transaction do not support transactions:
Warning: Some non-transactional changed tables couldn't be rolled back
These nontransactional tables are not affected by the
ROLLBACK
statement.
If you were not deliberately mixing transactional and
nontransactional tables within the transaction, the most
likely cause for this message is that a table you thought was
transactional actually is not. This can happen if you try to
create a table using a transactional storage engine that is
not supported by your mysqld server (or
that was disabled with a startup option). If
mysqld does not support a storage engine,
it instead creates the table as a MyISAM
table, which is nontransactional.
You can check the storage engine for a table by using either of these statements:
SHOW TABLE STATUS LIKE 'tbl_name';
SHOW CREATE TABLE tbl_name;
See Section 15.7.7.37, “SHOW TABLE STATUS Statement”, and Section 15.7.7.11, “SHOW CREATE TABLE Statement”.
To check which storage engines your mysqld server supports, use this statement:
SHOW ENGINES;
See Section 15.7.7.17, “SHOW ENGINES Statement” for full details.