MySQL 5.1 リファレンスマニュアル :: B Errors, Error Codes, and Common Problems :: B.1 Problems and Common Errors :: B.1.5 Query-Related Issues :: B.1.5.5 Rollback Failure for Non-Transactional Tables
« B.1.5.4 Problems with Column Aliases

B.1.5.6 Deleting Rows from Related Tables »
Section Navigation      [Toggle]
  • B.1.5 Query-Related Issues
  • B.1.5.1 Case Sensitivity in Searches
  • B.1.5.2 Problems Using DATE Columns
  • B.1.5.3 Problems with NULL Values
  • B.1.5.4 Problems with Column Aliases
  • B.1.5.5 Rollback Failure for Non-Transactional Tables
  • B.1.5.6 Deleting Rows from Related Tables
  • B.1.5.7 Solving Problems with No Matching Rows
  • B.1.5.8 Problems with Floating-Point Comparisons

B.1.5.5. Rollback Failure for Non-Transactional Tables

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 non-transactional tables are not affected by the ROLLBACK statement.

If you were not deliberately mixing transactional and non-transactional 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 doesn't support a storage engine, it instead creates the table as a MyISAM table, which is non-transactional.

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 項12.5.4.27. 「SHOW TABLE STATUS 構文」, and 項12.5.4.9. 「SHOW CREATE TABLE 構文」.

You can check which storage engines your mysqld server supports by using this statement:

SHOW ENGINES;

You can also use the following statement, and check the value of the variable that is associated with the storage engine in which you are interested:

SHOW VARIABLES LIKE 'have_%';

For example, to determine whether the InnoDB storage engine is available, check the value of the have_innodb variable.

See 項12.5.4.13. 「SHOW ENGINES 構文」, and 項12.5.4.30. 「SHOW VARIABLES 構文」.

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates