El tratamiento de errores en InnoDB no siempre
      es como se especifica en el estándar SQL. De acuerdo a éste,
      cualquier error durante la ejecución de una sentencia SQL
      debería ocasionar su cancelación. InnoDB a
      veces sólo cancela una parte de la sentencia, o la transacción
      completa. Los siguientes puntos describen cómo
      InnoDB lleva a cabo el tratamiento de errores:
    
          Si el espacio de tablas agota su espacio disponible en disco,
          se obtiene el error de MySQL Table is full
          (La tabla está llena) e InnoDB cancela la
          sentencia SQL.
        
          Un interbloqueo (deadlock) en una transacción o un exceso de
          espera (timeout) en una espera por bloqueo provocan que
          InnoDB cancele la transacción completa.
        
          Un error de clave duplicada cancelará la sentencia SQL, si
          ésta no contiene la opción IGNORE.
        
          Un error row too long error (registro
          demasiado largo) cancela la sentencia SQL.
        
          Los demás errores son, en su mayoría, detectados por la capa
          de código MySQL (por encima del nivel del motor de
          almacenamiento InnoDB) y causarán la
          cancelación de la correspondiente sentencia SQL. Los bloqueos
          no se liberan al cancelar una única sentencia SQL.
        
      Durante una cancelación implícita, así como durante la
      ejecución de un comando SQL ROLLBACK
      explícito, SHOW PROCESSLIST muestra
      Rolling back en la columna
      State de la conexión afectada.
    
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

