This MySQL table had me perplexed for a moment:

    mysql> desc quux;
    +---------------------------+-----------------------+------+-----+---------+----------------+
    | Field                     | Type                  | Null | Key | Default | Extra          |
    +---------------------------+-----------------------+------+-----+---------+----------------+
    | foobar                    | int(11)               | NO   |     | NULL    |                |
    (...)

    mysql> show create table quux;
    (...)
    `foobar` int(11) NOT NULL,
    (...)

Since the `foobar` field was never created with a DEFAULT clause, it gets automatically assigned DEFAULT NULL. However, at a first sight this looks like contradicting the fact that it was also defined as NOT NULL.

Then I realized that this schema aims to force to insert a value (and a non-NULL one) in `foobar` when adding a new record. 

Still, it looks a bit quirky to me. Is this acceptable, or an error of the DBA that should have defined a proper DEFAULT value for that field? Are there better ways to do so?