Spec-Zone .ru
спецификации, руководства, описания, API

1.8.6.4. ENUM иSET Ограничения

ENUM и SET столбцы обеспечивают эффективный способ определить столбцы, которые могут содержать только данный набор значений. См. Раздел 11.4.4," ENUM Введите", и Раздел 11.4.5," SET Введите". Однако, перед MySQL 5.0.2, ENUM и SET столбцы не обеспечивают истинные ограничения на запись недопустимых данных:

С MySQL 5.0.2 можно сконфигурировать сервер, чтобы использовать строгий режим SQL. См. Раздел 5.1.7, "Режимы SQL Сервера". Со строгим включенным режимом, определение a ENUM или SET столбец совершает поступок как ограничение на значения, в которые вводят столбец. Ошибка происходит для значений, которые не удовлетворяют эти условия:

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