September 26, 2024: PostgreSQL 17 Released!
Unsupported versions: 7.0 / 6.5 / 6.4
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the other supported versions listed above instead.

MOVE

Name

MOVE — Moves cursor position
MOVE [ selector ] [ count ] 
    { IN | FROM } cursor
    FETCH [ RELATIVE ] [ { [ # | ALL | NEXT | PRIOR ] } ] FROM ] cursor
  

Description

MOVE allows a user to move cursor position a specified number of rows. MOVE works like the FETCH command, but only positions the cursor and does not return rows.

Refer to the FETCH command for details on syntax and usage.

Notes

MOVE is a Postgres language extension.

Refer to FETCH for a description of valid arguments. Refer to DECLARE to declare a cursor. Refer to BEGIN WORK, COMMIT WORK, ROLLBACK WORK statements for further information about transactions.

Usage

Set up and use a cursor:

BEGIN WORK;
DECLARE liahona CURSOR  FOR SELECT * FROM films;
--Skip first 5 rows:
MOVE FORWARD 5 IN liahona;
MOVE
--Fetch 6th row in the cursor liahona:
FETCH 1 IN liahona;
FETCH

  code |title |did| date_prod|kind      |len
  -----+------+---+----------+----------+------
  P_303|48 Hrs|103|1982-10-22|Action    | 01:37
  (1 row)
-- close the cursor liahona and commit work:
CLOSE liahona;
COMMIT WORK;
   

Compatibility

SQL92

There is no SQL92 MOVE statement. Instead, SQL92 allows one to FETCH rows from an absolute cursor position, implicitly moving the cursor to the correct place.