Spec-Zone.ru › MySQL 9.2

1.7.3.3 Ограничения ENUM и SET

ENUM и SET столбцы обеспечивают эффективный способ определения столбцов, которые могут содержать только заданный набор значений. См. раздел 13.3.6, «Тип ENUM» и раздел 13.3.7, «Тип SET».

Если режим строгости не отключен (не рекомендуется, но см. раздел 7.1.11, «Режим SQL сервера»), определение столбца типа ENUM или SET действует как ограничение на вводимые в столбец значения. Возникает ошибка для значений, которые не удовлетворяют этим условиям:

  • Значение ENUM должно быть одним из перечисленных в определении столбца или его внутренним числовым эквивалентом. Значение не может быть значением ошибки (то есть 0 или пустой строкой). Для столбца, определённого как ENUM('a','b','c'), такие значения, как '', 'd' или 'ax' являются недопустимыми и отклоняются.

  • Значение SET должно быть пустой строкой или значением, состоящим только из значений, перечисленных в определении столбца, разделённых запятыми. Для столбца, определённого как SET('a','b','c'), такие значения, как 'd' или 'a,b,c,d' являются недопустимыми и отклоняются.

Ошибки для недопустимых значений могут быть подавлены в режиме строгости, если вы используете INSERT IGNORE или UPDATE IGNORE. В этом случае генерируется предупреждение, а не ошибка. Для ENUM, значение вставляется как член ошибки (0). Для SET, значение вставляется как задано, за исключением того, что любые недопустимые подстроки удаляются. Например, 'a,x,b,y' приводит к значению 'a,b'.

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

Spec-Zone.ru

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