FirebirdSQL logo
 DOMAININDEX 

Установка и удаление ограничения NOT NULL

Предложение SET NOT NULL добавляет ограничение NOT NULL для столбца таблицы.

Note

Успешное добавление ограничения NOT NULL происходит, только после полной проверки данных таблицы, для того чтобы убедится, что столбец не содержит значений NULL.

Явное ограничение NOT NULL на столбце, базирующегося на домене, преобладает над установками домена.В этом случае изменение домена для допустимости значения NULL, не распространяется на столбец таблицы.

Example 1. Добавление ограничения NOT NULL
ALTER TABLE STOCK
ALTER COLUMN PROPID SET NOT NULL;

Предложение DROP NOT NULL удаляет ограничение NOT NULL для столбца таблицы.Если столбец основан на домене с ограничением NOT NULL, то ограничение домена перекроет это удаление.

Example 2. Удаление ограничения NOT NULL
ALTER TABLE STOCK
ALTER COLUMN ITEMID DROP NOT NULL;

Изменение столбцов идентификации

Для столбцов идентификации позволено изменять способ генерации, начальное значение и значение приращения.

Предложение SET GENERATED позволяет изменить способ генерации столбца идентификации.Существует два способа генерации столбца идентификации:

  • BY DEFAULT столбцы позволяют переписать сгенерированное системой значение в операторах INSERT, UPDATE OR INSERT, MERGE просто указав значение этого столбца в списке значений.

  • ALWAYS столбцы не позволяют переписать сгенерированное системой значение, при попытке переписать значение такого столбца идентификации будет выдана ошибка. Переписать значение этого столбца в операторе INSERT можно только при указании директивы OVERRIDING SYSTEM VALUE.

Example 1. Изменение способа генерации столбца идентификации
ALTER TABLE objects
ALTER ID SET GENERATED ALWAYS;

Если указано только предложение RESTART, то происходит сброс значения генератора в ноль.Необязательное предложение WITH позволяет указать для нового значения внутреннего генератора отличное от нуля значение.

Example 2. Изменение текущего значения генератора для столбца идентификации
ALTER TABLE objects
ALTER ID RESTART WITH 100;

Предложение SET INCREMENT [BY] позволяет изменить значение приращения столбца идентификации.Значение приращения должно быть отлично от 0.

Example 3. Изменение приращения столбца идентификации
ALTER TABLE objects
ALTER ID SET INCREMENT BY 2;

В одном операторе можно изменить сразу несколько свойств столбца идентификации, например:

Example 4. Изменение нескольких свойств столбца идентификации
ALTER TABLE objects
ALTER ID SET GENERATED ALWAYS RESTART SET INCREMENT BY 2;

Предложение DROP IDENTITY удаляет связанный со столбцом идентификации системную последовательность и преобразует его в обычный столбец.

Example 5. Превращение столбца идентификации в обычный столбец
ALTER TABLE objects
ALTER ID DROP INDENTITY;