You can use defaults, that is, values that are supplied automatically when no entry is made, with both NULL and NOT NULL columns. A default counts as an entry. However, you cannot designate a NULL default for a NOT NULL column. You can specify null values as defaults using the default constraint of create table or using create default. The default constraint is described later in this chapter; create default is described in Chapter 14, “Defining Defaults and Rules for Data.”
If you specify NOT NULL when you create a column and do not create a default for it, an error message occurs when a user fails to make an entry in that column during an insert. In addition, the user cannot insert or update such a column with NULL as a value.
Table 8-1 illustrates the interaction between a column’s default and its null type when a user specifies no column value, or explicitly enters a NULL value. The three possible results are a null value for the column, the default value for the column, or an error message.
Column definition |
User entry |
Result |
---|---|---|
Null and default defined |
Enters no value Enters NULL value |
Default used NULL used |
Null defined, no default defined |
Enters no value Enters NULL value |
NULL used NULL used |
Not null, default defined |
Enters no value Enters NULL value |
Default used NULL used |
Not null, no default defined |
Enters no value Enters NULL value |
Error Error |