Иллюстрированный самоучитель по PostgreSQL

FETCH

Описание

Команда FETCH возвращает заданное количество записей от текущей позиции курсора. Курсоры используются только в транзакционных блоках, поскольку возвращаемая ими информация теоретически зависит от действий других пользователей в системе. Количество записей может быть как положительным, так и отрицательным. При положительном значении отсчет ведется в направлении, заданном соответствующим параметром (если параметр не указан, по умолчанию используется параметр FORWARD).

При отрицательном количестве записей отсчет ведется в направлении, противоположном заданному. Например, конструкция FORWARD – 5 эквивалентна конструкции BACKWARD 5. Если количество записей превышает количество записей в базе, команда FETCH выбирает все существующие записи в указанном направлении.

Примечание
В PostgreSQL 7.1.x не поддерживается обновление данных с использованием курсоров
.

Примеры

В дальнейших примерах используется курсор cur_employee, возвращающий данные из таблицы employees.

Следующая команда выбирает первые две записи через курсор cur_employee:

booktown=# BEGIN:
BEGIN
booktown=# DECLARE cur_employee CURSOR FOR
booktown-# SELECT firstjiame, lastjiame FROM employees:
SELECT
booktown=# FETCH FORWARD 2 IN cur_employee;
first_name last_name
Vincent | Appel
Michael Holloway
(2 rows)

В следующем примере конструкция BACKWARD – 2 (двойное отрицание) также производит выборку двух записей в прямом направлении:

booktown=# FETCH BACKWARD – 2 IN cur_employee:
firstjiame | last_name
David Joble Ben Noble
(2 rows)

Наконец, следующая команда демонстрирует выборку в обратном направлении через курсор cur_employee.

booktown=# FETCH BACKWARD 3 IN cur_employee;
first_name | last_name
David Joble
Michael Holloway
Vincent Appel
(3 rows)
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.