Псевдостолбцы NEXTVAL и CURRVAL

  • NEXTVAL возвращает следующее доступное значение последовательности. Оно возвращает уникальное значение каждый раз, когда на него ссылаются, даже для различных пользователей.

  • CURRVAL получает текущее значение последовательности.

  • NEXTVAL должен быть выполнен для последовательности, прежде чем CURRVAL будет содержать значение.

После того, как Вы создаете свою последовательность, она генерирует порядковые номера для использования в Ваших таблицах. Ссылайтесь на значения последовательности при использовании псевдостолбцов NEXTVAL и CURRVAL.

Псевдостолбец NEXTVAL используется, чтобы извлекать последовательные порядковые номера из указанной последовательности. Следует квалифицировать NEXTVAL с именем последовательности. Когда Вы ссылаетесь на sequence.NEXTVAL, новый порядковый номер будет сгенерирован, и затем текущий порядковый номер помещается в CURRVAL.

Псевдостолбец CURRVAL используется, чтобы обратиться к порядковому номеру, который только что сгенерировал текущий пользователь. Однако, NEXTVAL должен использоваться, чтобы генерировать порядковый номер в сеансе текущего пользователя прежде, чем на CURRVAL можно будет сослаться. Следует квалифицировать CURRVAL с именем последовательности.

Когда Вы ссылаетесь на sequence.CURRVAL, последнее значение, возвращенное к процессу пользователя, выводится на экран.

Правила для Использования NEXTVAL и CURRVAL

Можно использовать NEXTVAL и CURRVAL в следующих контекстах:

  • Список SELECT оператора SELECT, который не является частью подзапроса

  • Список подзапроса SELECT в операторе INSERT

  • Предложение VALUES оператора INSERT

  • Предложение SET оператора UPDATE

Нельзя использовать NEXTVAL и CURRVAL в следующих контекстах:

  • Список представления SELECT

  • Оператор SELECT с ключевым словом DISTINCT

  • Оператор SELECT с предложениями GROUP BY, HAVING или ORDER BY

  • Подзапрос в операторе SELECT, DELETE или UPDATE

  • Выражение DEFAULT в операторе CREATE TABLE или ALTER TABLE

Для получения дополнительной информации см. разделы "Pseudocolumns" и “CREATE SEQUENCE”в Справочнике Языка SQL БД Oracle 11g, Выпуск 1 (11.1).

Далее: Обработка Запроса

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)