FirebirdSQL logo
 FILTEREXCEPTION 

Кто может создать последовательность?

Выполнить оператор CREATE SEQUENCE (CREATE GENERATOR) могут:

Пользователь, создавший последовательность, становится её владельцем.

Примеры

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;

docnext count = 13

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>), не затронут при изменении приращения.

Кто может изменить последовательность?

Выполнить оператор ALTER SEQUENCE (ALTER GENERATOR) могут:

  • Администраторы

  • Владелец последовательности (генератора);

  • Пользователи с привилегией ALTER ANY SEQUENCE (ALTER ANY GENERATOR).

Примеры

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

Установка для последовательности EMP_NO_GEN значения 145.

ALTER SEQUENCE EMP_NO_GEN RESTART WITH 145;
Example 2. Изменение последовательности

Сброс значения последовательности в то, которое было установлено при создании последовательности (или при предыдущей установке значения).

ALTER SEQUENCE EMP_NO_GEN RESTART;
Example 3. Изменение последовательности

Изменение значения приращения последовательности EMP_NO_GEN.

ALTER SEQUENCE EMP_NO_GEN INCREMENT BY 10;

CREATE OR ALTER SEQUENCE

Назначение

Создание новой или изменение существующей последовательности (генератора).

Доступно в

DSQL, ESQL

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

seq_name

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

start_value

Начальное значение последовательности (генератора).По умолчанию равно 1.

increment

Шаг приращения.4 байтное целое число.По умолчанию равно 1.

Если последовательности не существует, то она будет создана.Уже существующая последовательность будет изменена, при этом существующие зависимости последовательности будут сохранены.

Important

Оператор CREATE OR ALTER SEQUENCE требует, чтобы хотя бы одно из необязательных предложений было указано.

Примеры

Example 1. Создание новой или изменение существующей последовательности
CREATE OR ALTER SEQUENCE EMP_NO_GEN
START WITH 10
INCREMENT BY 1;

DROP SEQUENCE

Назначение

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

Доступно в

DSQL, ESQL

Синтаксис
DROP {SEQUENCE | GENERATOR} seq_name
Table 1. Параметры оператора DROP SEQUENCE
Параметр Описание

seq_name

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

Оператор DROP SEQUENCE удаляет существующую последовательность (генератор). Слова SEQUENCE и GENERATOR являются синонимами.Вы можете использовать любое из них, но рекомендуется использовать SEQUENCE.При наличии зависимостей для существующей последовательности (генератора) удаления не будет выполнено.

Кто может удалить генератор?

Выполнить оператор DROP SEQUENCE (DROP GENERATOR) могут:

  • Администраторы

  • Владелец последовательности (генератора);

  • Пользователи с привилегией DROP ANY SEQUENCE (DROP ANY GENERATOR).

Примеры

Example 1. Удаление последовательности
DROP SEQUENCE EMP_NO_GEN;

RECREATE SEQUENCE

Назначение

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

Доступно в

DSQL, ESQL

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

seq_name

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

start_value

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

increment

Шаг приращения.4 байтное целое число.

Оператор RECREATE SEQUENCE создаёт или пересоздаёт последовательность (генератор). Если последовательность с таким именем уже существует,то оператор RECREATE SEQUENCE попытается удалить её и создать новую последовательность.При наличии зависимостей для существующей последовательности оператор RECREATE SEQUENCE не выполнится.

Примеры

Example 1. Пересоздание последовательности
RECREATE SEQUENCE EMP_NO_GEN
START WITH 10
INCREMENT BY 1;

SET GENERATOR

Назначение

Устанавливает значение последовательности или генератора в заданное значение.

Доступно в

DSQL, ESQL

Синтаксис
SET GENERATOR seq_name TO new_val
Table 1. Параметры оператора SET GENERATOR
Параметр Описание

seq_name

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

new_val

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

Оператор SET GENERATOR устанавливает значение последовательности или генератора в заданное значение.

Note

Оператор SET GENERATOR считается устаревшим и оставлен ради обратной совместимости.В настоящее время вместо него рекомендуется использовать стандарт-совместимый оператор ALTER SEQUENCE.

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

Кто может изменить значение генератора?

Выполнить оператор SET GENERATOR могут:

  • Администраторы

  • Владелец последовательности (генератора);

  • Пользователи с привилегией ALTER ANY SEQUENCE (ALTER ANY GENERATOR).

Примеры

Example 1. Установка значения для последовательности
SET GENERATOR EMP_NO_GEN TO 145;
Note

То же самое можно сделать, используя оператор ALTER SEQUENCE

ALTER SEQUENCE EMP_NO_GEN RESTART WITH 145;
См. также:

ALTER SEQUENCE, NEXT VALUE FOR, GEN_ID.