On Fri, 30 Dec 2016, Adrian Klaver wrote:
DEFAULT is what is the column is set to if the user does not specify a
value. As shown above a user can supply a NULL value. To guard against
that the NOT NULL constraint is required.
One more case I'd appreciate being clarified: when the column's value has
a check constraint with acceptable values in a list. For example,
param_units VARCHAR(8) DEFAULT 'mg/L'
CONSTRAINT param_units
CHECK (param_units IN ('ppm', 'mg/L', 'ug/L', 'umho/cm', 'percent', 'cfm', 'gpm')),
Seems to me that if values are constrained by a list a NULL cannot be
entered by the user. Is this correct?
"The CHECK clause specifies an _expression_ producing a Boolean result which new or updated rows must satisfy for an insert or update operation to succeed. Expressions evaluating to TRUE or UNKNOWN succeed."
NULL == "UNKNOWN"
David J.