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.