Simple-column-Name [ DataType ] [ Column-level-constraint ]* [ [ WITH ] DEFAULT DefaultConstantExpression | generated-column-spec | generation-clause ] [ Column-level-constraint ]*
The syntax of DataType is described in Data types. The DataType can be omitted only if you specify a generation-clause. If you omit the DataType, the type of the generated column is the type of the generation-clause. If you specify both a DataType and a generation-clause, the type of the generation-clause must be assignable to DataType.
The syntaxes of Column-level-constraint and Table-level constraint are described in CONSTRAINT clause.
For the definition of a default value, a DefaultConstantExpression is an expression that does not refer to any table. It can include constants, date-time special registers, current schemas, users, roles, and null:
DefaultConstantExpression:
NULL
| CURRENT { SCHEMA | SQLID }
| USER | CURRENT_USER | SESSION_USER | CURRENT_ROLE
| DATE
| TIME
| TIMESTAMP
| CURRENT DATE | CURRENT_DATE
| CURRENT TIME | CURRENT_TIME
| CURRENT TIMESTAMP | CURRENT_TIMESTAMP
| literal
For details about Derby literal values, see Data types.
The values in a DefaultConstantExpression must be compatible in type with the column, but a DefaultConstantExpression has the following additional type restrictions: