Oracle Database
Последовательности
Поиск…
Синтаксис
- CREATE SEQUENCE SCHEMA.SEQUENCE {INCREMENT by INTEGER | НАЧАЛО С INTEGER | MAXVALUE INTEGER | NOMAXVALUE INTEGER | MINVALUE INTEGER | NOMINVALUE INTEGER | CYCLE INTEGER | NOCYCLE INTEGER | CACHE | NOCACHE | ЗАКАЗАТЬ | NOODER}
параметры
параметр | подробности |
---|---|
схема | название схемы |
приращение | интервал между числами |
начните с | необходимо первое число |
MAXVALUE | Максимальное значение для последовательности |
NOMAXVALUE | Максимальное значение по умолчанию |
MinValue | минимальное значение для последовательности |
nominvalue | минимальное значение по умолчанию |
цикл | Сброс до начала после достижения этого значения |
NOCYCLE | По умолчанию |
кэш | Предел превалирования |
NoCache | По умолчанию |
порядок | Гарантировать порядок номеров |
Noorder | дефолт |
Создание последовательности: пример
Цель
Используйте инструкцию CREATE SEQUENCE для создания последовательности, которая является объектом базы данных, из которой несколько пользователей могут генерировать уникальные целые числа. Вы можете использовать последовательности, чтобы автоматически генерировать значения первичного ключа.
Когда генерируется порядковый номер, последовательность увеличивается, независимо от транзакции, совершающей или откат. Если два пользователя одновременно увеличивают одну и ту же последовательность, то порядковые номера, которые каждый пользователь получает, могут иметь пробелы, так как порядковые номера генерируются другим пользователем. Один пользователь никогда не сможет получить порядковый номер, сгенерированный другим пользователем. После того как значение последовательности генерируется одним пользователем, этот пользователь может продолжить доступ к этому значению независимо от того, увеличивается ли эта последовательность другим пользователем.
Номера последовательностей генерируются независимо от таблиц, поэтому одна и та же последовательность может использоваться для одного или нескольких таблиц. Возможно, что отдельные порядковые номера будут пропущены, потому что они были сгенерированы и использованы в транзакции, которая в конечном счете откат. Кроме того, один пользователь может не понимать, что другие пользователи рисуют из одной и той же последовательности.
После создания последовательности вы можете получить доступ к своим значениям в операторах SQL с псевдоколонкой CURRVAL, которая возвращает текущее значение последовательности или псевдоколонку NEXTVAL, которая увеличивает последовательность и возвращает новое значение.
Предпосылки
Чтобы создать последовательность в вашей собственной схеме, вы должны иметь системную привилегию CREATE SEQUENCE.
Чтобы создать последовательность в схеме другого пользователя, вы должны иметь системную привилегию CREATE ANY SEQUENCE.
Создание последовательности: пример Следующий оператор создает последовательность customers_seq в схеме экземпляра oe. Эта последовательность может использоваться для предоставления идентификационных номеров клиентов, когда строки добавляются в таблицу клиентов.
CREATE SEQUENCE customers_seq
START WITH 1000
INCREMENT BY 1
NOCACHE
NOCYCLE;
Первая ссылка на customer_seq.nextval возвращает 1000. Вторая возвращает 1001. Каждая последующая ссылка вернет значение 1 больше, чем предыдущая ссылка.