Функция
Устанавливает умолчания, принятые для <определения столбца>.
Формат
<спецификатор умолчания> : : = | |||||
DEFAULT {<литерал> | USER | NULL} |
Правила синтаксиса
1) Обусловленным <типом данных> для <спецификатора умолчания> является <тип данных> того <определения столбца>, в котором содержится этот <спецификатор умолчания>.
2) Возможны следующие варианты:
a) если задан <литерал>:
- если обусловленный <тип данных> является строковым типом, то <литерал> должен быть <строковым литералом>. Длина <строкового литерала> не должна превышать <длину> обусловленного <типа данных>;
- если обусловленный <тип данных> является точным числовым типом, то <литерал> должен быть <точным числовым литералом>, при этом обусловленный <тип данных> должен давать возможность представить значение, заданное <точным числовым литералом>, без потери значащих разрядов;
- если обусловленный <тип данных> является приближенным числовым типом, то <литерал> должен быть <приближенным числовым литералом> или же <точным числовым литералом>;
b) если задано USER, то обусловленный <тип данных> является строковым типом, <длина> обусловленного <типа данных> должна быть больше или равна 18;
с) если задано NULL, то <определение столбца>, в котором содержится <спецификатор умолчания>, не должно включать в себя NOT NULL.
Общие правила
1) Когда в таблицу, заданную <определением таблицы>, производится вставка строки, то инициализация столбца, заданного <определением столбца>, будет выполняться следующим образом:
a) если в <определении столбца> <спецификатор умолчания> не задан или же явным или неявным образом задан <спецификатор умолчания> вида NULL, то столбец инициализируется как содержащий неопределенное значение;
b) если в <определении столбца> задан <спецификатор умолчания>, который содержит <литерал>, то возможны следующие варианты:
- если в <определении столбца> <тип данных> задает точный числовой или же приближенный числовой тип, то столбец инициализируется как содержащий числовое значение <литерала>;
- если в <определении столбца> <тип данных> задает строку символов, длина которой равна длине <литерала>, то столбец инициализируется как содержащий значение <литерала>;
- если в <определении столбца> <тип данных> задает строку символов, длина которой превышает длину <литерала>, то столбец инициализируется как содержащий значение <литерала>, дополненное справа необходимым количеством пробелов до той длины, которая задается <типом данных>;
с) если в <определении столбца> задан <спецификатор умолчания> вида USER, то столбец инициализируется как содержащий значение, задаваемое <спецификацией значения> USER, дополненное справа необходимым количеством пробелов до той длины, которая соответствует <типу данных> из <определения столбца>.