Spec-Zone.ru › MySQL 5.7

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

  • 1.6.3.1 Ограничения PRIMARY KEY и UNIQUE Index
  • 1.6.3.2 Ограничения FOREIGN KEY
  • 1.6.3.3 Ограничения на некорректные данные
  • 1.6.3.4 Ограничения ENUM и SET

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

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

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

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

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

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

Spec-Zone.ru

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