Статус документа
Статус документа

ГОСТ Р ИСО/МЭК 9075-93 Информационная технология (ИТ). Язык баз данных SQL с расширением целостности

     6.4 <спецификатор умолчания>


Функция

Устанавливает умолчания, принятые для <определения столбца>.

Формат

<спецификатор умолчания> : : =

DEFAULT {<литерал> | USER | NULL}


Правила синтаксиса

1) Обусловленным <типом данных> для <спецификатора умолчания> является <тип данных> того <определения столбца>, в котором содержится этот <спецификатор умолчания>.

2) Возможны следующие варианты:

a) если задан <литерал>:

- если обусловленный <тип данных> является строковым типом, то <литерал> должен быть <строковым литералом>. Длина <строкового литерала> не должна превышать <длину> обусловленного <типа данных>;

- если обусловленный <тип данных> является точным числовым типом, то <литерал> должен быть <точным числовым литералом>, при этом обусловленный <тип данных> должен давать возможность представить значение, заданное <точным числовым литералом>, без потери значащих разрядов;

- если обусловленный <тип данных> является приближенным числовым типом, то <литерал> должен быть <приближенным числовым литералом> или же <точным числовым литералом>;

b) если задано USER, то обусловленный <тип данных> является строковым типом, <длина> обусловленного <типа данных> должна быть больше или равна 18;

с) если задано NULL, то <определение столбца>, в котором содержится <спецификатор умолчания>, не должно включать в себя NOT NULL.

Общие правила

1) Когда в таблицу, заданную <определением таблицы>, производится вставка строки, то инициализация столбца, заданного <определением столбца>, будет выполняться следующим образом:

a) если в <определении столбца> <спецификатор умолчания> не задан или же явным или неявным образом задан <спецификатор умолчания> вида NULL, то столбец инициализируется как содержащий неопределенное значение;

b) если в <определении столбца> задан <спецификатор умолчания>, который содержит <литерал>, то возможны следующие варианты:

- если в <определении столбца> <тип данных> задает точный числовой или же приближенный числовой тип, то столбец инициализируется как содержащий числовое значение <литерала>;

- если в <определении столбца> <тип данных> задает строку символов, длина которой равна длине <литерала>, то столбец инициализируется как содержащий значение <литерала>;

- если в <определении столбца> <тип данных> задает строку символов, длина которой превышает длину <литерала>, то столбец инициализируется как содержащий значение <литерала>, дополненное справа необходимым количеством пробелов до той длины, которая задается <типом данных>;

с) если в <определении столбца> задан <спецификатор умолчания> вида USER, то столбец инициализируется как содержащий значение, задаваемое <спецификацией значения> USER, дополненное справа необходимым количеством пробелов до той длины, которая соответствует <типу данных> из <определения столбца>.