Spec-Zone .ru
спецификации, руководства, описания, API

1.8.6. Как MySQL Deals with Constraints

1.8.6.1. PRIMARY KEY и UNIQUE Индексируйте Ограничения
1.8.6.2. FOREIGN KEY Ограничения
1.8.6.3. Ограничения на Недопустимые Данные
1.8.6.4. ENUM иSET Ограничения

MySQL позволяет Вам работать и с транзакционными таблицами, которые разрешают откат и с нетранзакционными таблицами, которые не делают. Из-за этого ограничительная обработка несколько отличается в MySQL чем в другом DBMSs. Мы должны обработать случай, когда Вы вставили или обновили много строк в нетранзакционной таблице, для которой не могут откатываться изменения, когда ошибка происходит.

Основная философия - то, что MySQL Server пытается произвести ошибку для чего-либо, что он может обнаружить, анализируя оператор, который будет выполняться, и пытается восстановиться с любых ошибок, которые происходят, выполняя оператор. Мы еще делаем это в большинстве случаев, но для всех.

MySQL опций имеет, когда ошибка происходит, должны остановить оператор в середине или восстановиться так же как возможный с проблемы и продолжаться. По умолчанию сервер следует за последним курсом. Это означает, например, что сервер может принудить недопустимые значения к самым близким допустимым значениям.

Несколько опций режима SQL доступны, чтобы обеспечить большее управление обработкой значений неправильных данных и продолжать ли выполнение оператора или аварийное прекращение работы, когда ошибки происходят. Используя эти опции, можно сконфигурировать MySQL Server, чтобы действовать более традиционным способом, который походит на другие DBMSs, которые отклоняют неподходящий ввод. Режим SQL может быть установлен глобально при запуске сервера влиять на все клиенты. Отдельные клиенты могут установить режим SQL во времени выполнения, которое позволяет каждому клиенту выбрать поведение, самое подходящее для его требований. См. Раздел 5.1.7, "Режимы SQL Сервера".

Следующие разделы описывают, как MySQL Server обрабатывает различные типы ограничений.