> If you insert an invalid value into an ENUM (that is, a string not
> present in the list of allowed values), the empty string is inserted
> instead as a special error value. This string can be distinguished
> a 'normal' empty string by the fact that this string has the numerical
> value 0. More about this later.
"changeday" is NOT NULL -> but you still can enter
'' ... Strange and, IMO, a bug. What's the use of
restricting to a set of possible values without enforcing it?
On an INSERT it allows you to get or track entry errors. You have to
apply error checking to your application to enforce the integrity of the
enum field. This has been one of those excessively debated issues over
the years. I have used this 'feature' for error checking for a long time