1.7.3.3 Ограничения ENUM и SET
ENUM и SET столбцы предоставляют эффективный способ определения столбцов, которые могут содержать только заданный набор значений. См. Раздел 13.3.5, «Тип ENUM» и Раздел 13.3.6, «Тип 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.