DEFAULT Function Option
You can use the DEFAULT function to return, and then insert, the default value for a column based on either its position within the VALUES expression list or, if an explicit column name is specified along with the DEFAULT function, its name.
DEFAULT VALUES Option
For a table with all columns defined as in the following table, an INSERT defined with the DEFAULT VALUES keywords adds a row consisting of defined default values (where indicated), identity values for identity columns, and nulls for other columns, where defined:
Nullable? | Default defined? |
---|---|
Yes | No |
Yes | Yes |
No | Yes |
This INSERT occurs when the row satisfies the conditions imposed by the table definition. Otherwise an error is returned.
Embedded SQL also supports the DEFAULT VALUES option for INSERT.
When inserting into a table with an identity column, the system always generates a number for the identity column, whether it is defined as GENERATED ALWAYS or as GENERATED BY DEFAULT.
In the following example, if table_1 has an identity column, the system always generates a value for it:
INSERT table_1 DEFAULT VALUES;
When any non-identity column in the table is defined as NOT NULL and does not have defined DEFAULT, an error is returned (ANSI session mode) or the transaction aborts (Teradata session mode).
When a row is otherwise valid but duplicates an existing row and the table has been defined not to accept duplicate rows, an error is returned (ANSI session mode) or the transaction aborts (Teradata session mode).
Inserting Into Columns Without Specifying a Value
- If the column is not declared as NOT NULL and no default value is declared, nulls are inserted.
- If the column is declared as NOT NULL and no default value is declared, an error is returned (ANSI session mode) or the transaction aborts (Teradata session mode).