Справочное руководство по MySQL




7.5.13 Обработка ошибок

Обработка ошибок в InnoDB не всегда соответствует спецификациям, указанным в стандарте ANSI SQL. В соответствии со стандартом ANSI любая ошибка, произошедшая во время выполнения оператора SQL должна привести к откату оператора. InnoDB иногда осуществляет откат только части оператора или целой транзакции. Особенности обработки ошибок в InnoDB указаны в приведенном ниже списке.

  • Если закончилось свободное место в табличной области, будет выдано сообщение об ошибке MySQL 'Table is full' и InnoDB произведет откат оператора SQL.
  • Взаимоблокировка транзакции или истечение времени ожидания при блокировке приводят к откату целой транзакции в InnoDB.
  • Ошибка дублирующегося ключа приводит к откату вставки только этой определенной строки, даже в операторе INSERT INTO ... SELECT .... Этот алгоритм мы, возможно, изменим, с тем чтобы производился откат всего оператора SQL, если для него не указан параметр IGNORE.
  • Ошибка 'row too long' приводит к откату оператора SQL.
  • Большинство остальных ошибок обнаруживается на уровне кода MySQL, и производится откат соответствующего оператора SQL.

7.5.12.3 Дефрагментация таблицыОглавление7.5.14 Ограничения для таблиц InnoDB