Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

ALTER SEQUENCE

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

Синтаксис

ALTER SEQUENCE [ IF EXISTS ] <name> OWNER TO <new_owner>

ALTER SEQUENCE [ IF EXISTS ] <name> RENAME TO <new_name>

ALTER SEQUENCE [ IF EXISTS ] <name> SET SCHEMA <new_schema>

ALTER SEQUENCE [ IF EXISTS ] <name> [INCREMENT [ BY ] <increment>]
     [MINVALUE <minvalue> | NO MINVALUE]
     [MAXVALUE <maxvalue> | NO MAXVALUE]
     [START [ WITH ] <start> ]
     [RESTART [ [ WITH ] <restart>] ]
     [CACHE <cache>] [[ NO ] CYCLE]
     [OWNED BY {<table.column> | NONE}]

Описание

ALTER SEQUENCE изменяет параметры существующего генератора последовательностей. Любые параметры, не заданные явно в команде ALTER SEQUENCE, сохраняют свои прежние настройки.

Необходимо быть владельцем генератора последовательности, чтобы использовать ALTER SEQUENCE. Чтобы изменить схему последовательности, необходимо также иметь привилегию CREATE в новой схеме. Обратите внимание, что суперпользователи обладают всеми этими привилегиями автоматически.

Чтобы изменить владельца, необходимо быть прямым или косвенным членом новой роли владельца, и эта роль должна иметь привилегию CREATE в схеме последовательности. Эти ограничения гарантируют, что смена владельца не позволит сделать ничего, что нельзя было бы сделать путем удаления и повторного создания последовательности. Однако суперпользователь может изменить владельца любой последовательности в любом случае.

Параметры

Параметр Описание

name

Имя (опционально указанное со схемой) последовательности, которую необходимо изменить

IF EXISTS

Не завершать действие ошибкой, если последовательность не существует. В этом случае будет показано уведомление

increment

Условие INCREMENT BY <increment> необязательно. Положительное значение создаст возрастающую последовательность, отрицательное — убывающую. Если не указано, будет сохранено старое значение приращения

minvalue
NO MINVALUE

Необязательное условие MINVALUE <minvalue> определяет минимальное значение, которое может генерировать последовательность. Если указано NO MINVALUE, используются значения по умолчанию 1 и для возрастающих и убывающих последовательностей соответственно. Если ни одна из опций не указана, сохраняется текущее минимальное значение

maxvalue
NO MAXVALUE

Необязательное условие MAXVALUE <maxvalue> определяет максимальное значение для последовательности. Если указано NO MAXVALUE, используются значения по умолчанию и -1 для возрастающих и убывающих последовательностей соответственно. Если ни одна из опций не указана, сохраняется текущее максимальное значение

start

Необязательное условие START WITH <start> изменяет записанное начальное значение последовательности. Условие не влияет на текущее значение последовательности; оно просто устанавливает значение, которое будут использовать будущие команды ALTER SEQUENCE RESTART

restart

Необязательное условие RESTART [ WITH <restart> ] изменяет текущее значение последовательности. Условие эквивалентно вызову функции setval(<sequence>, <start_val>, <is_called>) с <is_called> = false. Указанное значение будет возвращено следующим вызовом функции nextval(<sequence>). Написание RESTART без значения перезапуска эквивалентно предоставлению начального значения, которое было записано командой CREATE SEQUENCE или установлено последней командой ALTER SEQUENCE START WITH

new_owner

Имя пользователя нового владельца последовательности

cache

Условие CACHE cache позволяет предварительно выделять номера последовательности и сохранять их в памяти для более быстрого доступа. Минимальное значение — 1 (генерируется только одно значение за раз, т.е. без кеширования). Если не указано, сохраняется старое значение кеша

CYCLE

Необязательное ключевое слово CYCLE может использоваться для включения зацикливания последовательности при достижении maxvalue или minvalue возрастающей или убывающей последовательностью. Если предел достигнут, следующее сгенерированное число будет соответствующим minvalue или maxvalue

NO CYCLE

Если указано необязательное ключевое слово NO CYCLE, любые вызовы nextval() после того, как последовательность достигнет своего максимального значения, будут возвращать ошибку. Если не указано ни CYCLE, ни NO CYCLE, сохраняется старое поведение зацикливания

OWNED BY table.column
OWNED BY NONE

Опция OWNED BY связывает последовательность с конкретным столбцом таблицы, так что если этот столбец (или вся его таблица) удаляется, последовательность также автоматически удаляется. Если указано, эта связь заменяет любую ранее указанную связь для последовательности. Указанная таблица должна иметь того же владельца и находиться в той же схеме, что и последовательность. Указание OWNED BY NONE удаляет любую существующую связь со столбцом таблицы

new_name

Новое имя последовательности

new_schema

Новая схема последовательности

Примечания

Чтобы избежать блокировки параллельных транзакций, которые получают номера из одной и той же последовательности, влияние ALTER SEQUENCE на параметры генерации последовательности никогда не отменяется; эти изменения вступают в силу немедленно и необратимы. Однако условия OWNED BY, OWNER TO, RENAME TO и SET SCHEMA являются обычными обновлениями каталога и могут быть отменены.

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

По историческим причинам ALTER TABLE также может использоваться с последовательностями; но единственные варианты ALTER TABLE, допустимые с последовательностями, эквивалентны формам, показанным выше.

Примеры

Перезапустить последовательность с именем serial со значения 105:

ALTER SEQUENCE serial RESTART WITH 105;

Совместимость

ALTER SEQUENCE соответствует стандарту SQL, за исключением условий START WITH, OWNED BY, OWNER TO, RENAME TO и SET SCHEMA, которые являются расширениями Greengage DB.

См. также