NOT NULL is not the same as DEFAULT. DEFAULT means that if a value is not supplied in insertion, the database gives one by, well, default. NOT NULL means this field must not be omitted in the INSERT (unless there's a default!), nor can it be set to NULL (which is not the same thing as an empty string in SQL) later with an UPDATE.