×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

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

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

6.1.28. ALTER SEQUENCE

6.1.28. ALTER SEQUENCE

ALTER SEQUENCE — изменение определения генератора последовательности

Синтаксис

ALTER SEQUENCE [ IF EXISTS ] name
    [ AS data_type ]
    [ INCREMENT [ BY ] increment ]
    [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
    [ START [ WITH ] start ]
    [ RESTART [ [ WITH ] restart ] ]
    [ CACHE cache ] [ [ NO ] CYCLE ]
    [ OWNED BY { table_name.column_name | NONE } ]
ALTER SEQUENCE [ IF EXISTS ] name SET { LOGGED | UNLOGGED }
ALTER SEQUENCE [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER SEQUENCE [ IF EXISTS ] name RENAME TO new_name
ALTER SEQUENCE [ IF EXISTS ] name SET SCHEMA new_schema

Описание

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

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

Параметры

name

Имя (возможно, с указанием схемы) изменяемой последовательности.

IF EXISTS

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

data_type

Необязательное предложение AS data_type изменяет тип данных последовательности. Допустимые типы: smallint, integer и bigint.

Изменение типа данных автоматически изменяет минимальное и максимальное значения последовательности тогда и только тогда, когда предыдущие минимальное и максимальное значения были минимальным или максимальным значением старого типа данных (другими словами, если последовательность была создана с использованием NO MINVALUE или NO MAXVALUE, неявно или явно). В противном случае минимальное и максимальное значения сохраняются, если только новые значения не заданы в той же команде. Если минимальное и максимальное значения не помещаются в новый тип данных, будет сгенерирована ошибка.

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 с is_called = false: указанное значение будет возвращено следующим вызовом nextval. Написание RESTART без значения restart эквивалентно указанию начального значения, которое было записано командой CREATE SEQUENCE или последний раз установлено командой ALTER SEQUENCE START WITH.

В отличие от вызова setval, операция RESTART над последовательностью является транзакционной и блокирует параллельные транзакции от получения чисел из той же последовательности. Если это нежелательный режим работы, следует использовать setval.

cache

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

CYCLE

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

NO CYCLE

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

SET { LOGGED | UNLOGGED }

Эта форма изменяет последовательность с незалогированной (unlogged) на залогированную (logged) или наоборот (см. CREATE SEQUENCE). Она не может быть применена к временной последовательности.

OWNED BY table_name.column_name
OWNED BY NONE

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

new_owner

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

new_name

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

new_schema

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

Примечания

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

Команда ALTER SEQUENCE не влияет на статус currval для последовательности. (До Digital Q.DataBase 8.3 иногда влияла.)

Команда ALTER SEQUENCE блокирует параллельные вызовы nextval, currval, lastval и setval.

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

Примеры

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

ALTER SEQUENCE serial RESTART WITH 105;

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

Команда ALTER SEQUENCE соответствует стандарту SQL, за исключением предложений AS, START WITH, OWNED BY, OWNER TO, RENAME TO и SET SCHEMA, которые являются расширениями Digital Q.DataBase.

Смотрите также

CREATE SEQUENCE, DROP SEQUENCE
Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению