FirebirdSQL logo

Примеры

Example 1. Создание последовательности

Создание последовательности EMP_NO_GEN с начальным значением 0 и шагом приращения равным единице.

CREATE SEQUENCE EMP_NO_GEN;
Example 2. Создание последовательности

Создание последовательности EMP_NO_GEN с начальным значением 5 и шагом приращения равным единице.

CREATE SEQUENCE EMP_NO_GEN START WITH 5;
Example 3. Создание последовательности

Создание последовательности EMP_NO_GEN с начальным значением 1 и шагом приращения равным 10.

CREATE SEQUENCE EMP_NO_GEN INCREMENT BY 10;
Example 4. Создание последовательности

Создание последовательности EMP_NO_GEN с начальным значением 5 и шагом приращения равным 10.

CREATE SEQUENCE EMP_NO_GEN START WITH 5 INCREMENT BY 10;

ALTER SEQUENCE

Назначение

Изменение последовательности (генератора).

Доступно в

DSQL, ESQL

Синтаксис
ALTER {SEQUENCE | GENERATOR} seq_name
[RESTART [WITH newvalue]]
[INCREMENT [BY] increment]
Table 1. Параметры оператора ALTER SEQUENCE
Параметр Описание

seq_name

Имя последовательности (генератора).

newvalue

Новое значение последовательности (генератора). 64 битное целое в диапазоне от -263 до 263 - 1

increment

Шаг приращения. Не может быть равным 0.

Оператор ALTER SEQUENCE устанавливает значение последовательности или генератора в заданное значение и/или изменяет значение приращения.

Предложение RESTART WITH позволяет установить значение последовательности. Предложение RESTART может быть использовано самостоятельно (без WITH) для перезапуска значения последовательности с того значения с которого был начат старт генерации значений или предыдущий рестарт.

Warning

Неосторожное использование оператора ALTER SEQUENCE (изменение значения последовательности или генератора) может привести к нарушению логической целостности данных.

Предложение INCREMENT [BY] позволяет изменить шаг приращения последовательности для оператора NEXT VALUES FOR.

Note

Изменение значения приращения — это возможность, которая вступает в силу для каждого запроса, который запускается после фиксаций изменения.Процедуры, которые вызваны впервые после изменения приращения, будут использовать новое значение, если они будут содержать операторы NEXT VALUE FOR.Процедуры, которые уже работают, не будут затронуты, потому что они кэшируются.Процедуры, использующие NEXT VALUE FOR, не должны быть перекомпилированы, чтобы видеть новое приращение, но если они уже работают или загружены, то никакого эффекта не будет.Конечно процедуры, использующие gen_id(gen, <expression>), не затронут при изменении приращения.