Spec-Zone.ru › MySQL 8.4

1.7.3 Как MySQL обрабатывает ограничения

  • 1.7.3.1 Ограничения PRIMARY KEY и индексов UNIQUE
  • 1.7.3.2 Ограничения FOREIGN KEY
  • 1.7.3.3 Ограничения ENUM и SET

MySQL позволяет работать как с транзакционными таблицами, допускающими откат, так и с нетранзакционными таблицами, которые этого не допускают. Из-за этого обработка ограничений в MySQL отличается от других СУБД. Необходимо обработать случай, когда в нетранзакционной таблице было вставлено или обновлено много строк, а изменения нельзя откатить при возникновении ошибки.

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

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

Доступны несколько опций SQL-режима, чтобы обеспечить больший контроль над обработкой некорректных значений данных и продолжением выполнения оператора или прерыванием при возникновении ошибок. Используя эти опции, можно настроить MySQL Server на работу более традиционным образом, подобно другим СУБД, которые отклоняют некорректные данные. Режим SQL можно установить глобально при запуске сервера, чтобы он повлиял на всех клиентов. Отдельные клиенты могут установить режим SQL во время выполнения, что позволяет каждому клиенту выбрать поведение, наиболее подходящее для его потребностей. См. Раздел 7.1.11, «Режимы SQL сервера».

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

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/constraints.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API