When performing ROLLBACK, if you receive the following message, one or more tables used in the transaction do not support transactions:
Warning some changed non-transactional tables cannot be rolled back.
These non-transactional tables are not affected by ROLLBACK statements.
If you want to mix a transaction table and a non-transaction table in a transaction, the most likely cause of this message is that you think the table that is supposed to be transactional is actually not. This may happen if you try to create a table using a transaction storage engine not supported by the MySQLd server (or use the startup option to disable it. If mysqld does not support the storage engine, it creates a table in the MyISAM table, which is a non-transactional table.
You can use one of the following statements to check the label type:
Show table status like 'tbl _ name ';
Show create table tbl_name;
Use the following statement to check the storage engine supported by the mysqld Server:
Show engines;
You can also use the following statement to check the variable values related to the storage engine you are interested in:
Show variables like 'have _ % ';
For example, to determine whether the InnoDB Storage engine is available, check the value of the have_innodb variable.