DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) innodb-error-handling

Info Catalog (mysql.info) file-space-management (mysql.info) innodb (mysql.info) innodb-restrictions
 
 14.2.15 `InnoDB' Error Handling
 -------------------------------
 

Menu

 
* innodb-error-codes           `InnoDB' Error Codes
* operating-system-error-codes  Operating System Error Codes
 
 Error handling in `InnoDB' is not always the same as specified in the
 SQL standard. According to the standard, any error during an SQL
 statement should cause the rollback of that statement. `InnoDB'
 sometimes rolls back only part of the statement, or the whole
 transaction. The following items describe how `InnoDB' performs error
 handling:
 
    * If you run out of file space in the tablespace, a MySQL `Table is
      full' error occurs and `InnoDB' rolls back the SQL statement.
 
    * A transaction deadlock causes `InnoDB' to roll back the entire
      transaction. In the case of a lock wait timeout, `InnoDB' also
      rolls back the entire transaction before MySQL 5.0.13; as of
      5.0.13, `InnoDB' rolls back only the most recent SQL statement.
 
      When a transaction rollback occurs due to a deadlock or lock wait
      timeout, it cancels the effect of the statements within the
      transaction. But if the start-transaction statement was `START
      TRANSACTION' or `BEGIN' statement, rollback does not cancel that
      statement. Further SQL statements become part of the transaction
      until the occurrence of `COMMIT', `ROLLBACK', or some SQL
      statement that causes an implicit commit.
 
    * A duplicate-key error rolls back the SQL statement, if you have
      not specified the `IGNORE' option in your statement.
 
    * A `row too long error' rolls back the SQL statement.
 
    * Other errors are mostly detected by the MySQL layer of code (above
      the `InnoDB' storage engine level), and they roll back the
      corresponding SQL statement. Locks are not released in a rollback
      of a single SQL statement.
 
 During implicit rollbacks, as well as during the execution of an
 explicit `ROLLBACK' SQL command, `SHOW PROCESSLIST' displays `Rolling
 back' in the `State' column for the relevant connection.
 
Info Catalog (mysql.info) file-space-management (mysql.info) innodb (mysql.info) innodb-restrictions
automatically generated byinfo2html