Значение по умолчанию

 

Функция DEFAULT возвращает типизированное значение по умолчанию заданного столбца.

Общие правила
  1. Выдается текущее значение по умолчанию заданного столбца. Тип возвращаемого значения – константа.

  2. Запрещено использовать для столбцов c типами данных BLOB и EXTFILE.

  3. Если значение по умолчанию не задано или недопустимо для данного столбца, выдается NULL.

  4. Для столбцов с атрибутом GENERATED BY DEFAULT AS или DEFAULT < значимое выражение > возвращается NULL-значение. Это связано с тем, что < значимое выражение > в данном случае вычисляется непосредственно в момент добавления новой записи (т.е. заранее неизвестно). Получить текстовый вид < значимого выражения > по умолчанию можно с помощью функции LINTER_DICT_INFO, например:

    alter table q1 alter column i set default (j + 9);
    select LINTER_DICT_INFO(2,$$$S11,2)
      from LINTER_SYSTEM_USER.$$$SYSRL
     where $$$S13='Q1';
    
    |("J"+9)    |
  5. Если выражение, от которого берется функция DEFAULT, является столбцом представления, источником для которого служит не столбец базовой таблицы, а выражение, то результатом будет NULL-значение.

  6. Типом возвращаемого значения является тип аргумента функции (см. функцию DEFTEXT, которая также возвращает значение по умолчанию, но в символьном представлении).

    select default(make), default(personid) from auto;
    
    |NULL |NULL |
    
    create or replace table tab1(i int default 100, b varbyte(10) default hex('616161'));
    select default(i), default(b) from tab1;
    
    |100 |FFFFFF |
    
    select default(i), cast default(b) as nchar(10) from tab1;
    
    |100 |яяя |