↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / SQL 命令 / 游标与预备语句

SQL COMMAND · 游标与预备语句

MOVE

定位游标

position a cursor

MOVE游标与预备语句引入 6.4(基线)现存至 20 devel6 次语法变更

动词
MOVE
对象
—
引入版本
6.4(基线)
状态
现存
语法变更次数
6
手册小节数
5

本站手册 · 18官方文档 ↗

版本轨迹

相对 PostgreSQL 17 无变化。

语法铁道图 PostgreSQL 18

沿轨道从左向右阅读,分岔表示选择,绕行表示可选,回环表示重复。方框为参数,点击带下划线的参数可展开子规则。

MOVE direction FROM IN cursor_name
direction
NEXT PRIOR FIRST LAST ABSOLUTE count RELATIVE count count ALL FORWARD FORWARD count FORWARD ALL BACKWARD BACKWARD count BACKWARD ALL

语法概要

MOVE [ direction ] [ FROM | IN ] cursor_name
其中 direction 可以是以下之一:

NEXT
PRIOR
FIRST
LAST
ABSOLUTE count
RELATIVE count
count
ALL
FORWARD
FORWARD count
FORWARD ALL
BACKWARD
BACKWARD count
BACKWARD ALL

PostgreSQL 18 手册 · 查看完整参考页

描述

MOVE 在不检索任何数据的情况下重新定位游标。MOVE 与 FETCH 命令的工作方式完全相同,只是它只定位游标而不返回行。

MOVE 命令的参数与 FETCH 命令完全相同;有关语法和用法的细节,请参阅 FETCH。

输出

成功完成时,MOVE 命令会返回如下形式的命令标签:

MOVE count

其中 count 是用相同参数执行 FETCH 命令时本应返回的行数(可能为零)。

示例

BEGIN WORK;
DECLARE liahona CURSOR FOR SELECT * FROM films;

-- 跳过前 5 行:
MOVE FORWARD 5 IN liahona;
MOVE 5

-- 从游标 liahona 中提取第 6 行:
FETCH 1 FROM liahona;
 code  | title  | did | date_prod  |  kind  |  len
-------+--------+-----+------------+--------+-------
 P_303 | 48 Hrs | 103 | 1982-10-22 | Action | 01:37
(1 row)

-- 关闭游标 liahona 并结束事务:
CLOSE liahona;
COMMIT WORK;

兼容性

SQL 标准中没有 MOVE 语句。

另见

语法演化

相邻大版本之间的差异,新的在前。版本号链接到对应快照。

  1. PostgreSQL 10← 9.6语法变化

    + MOVE [ direction ] [ FROM | IN ] cursor_name− MOVE [ direction [ FROM | IN ] ] cursor_name
  2. PostgreSQL 9.1← 9.0语法变化

    + NEXT+ PRIOR+ FIRST+ LAST+ ABSOLUTE count+ RELATIVE count+ count+ ALL+ FORWARD+ FORWARD count+ FORWARD ALL+ BACKWARD+ BACKWARD count+ BACKWARD ALL
  3. PostgreSQL 9.0← 8.4语法变化

    + MOVE [ direction [ FROM | IN ] ] cursor_name− MOVE [ direction { FROM | IN } ] cursorname
  4. PostgreSQL 8.4← 8.3正文更新

    正文更新
  5. PostgreSQL 8.0← 7.4正文更新

    正文更新
  6. PostgreSQL 7.4← 7.3语法变化

    + MOVE [ direction { FROM | IN } ] cursorname− MOVE [ direction ] [ count ]− { IN | FROM } cursor正文更新
  7. PostgreSQL 7.2← 7.1正文更新

    正文更新
  8. PostgreSQL 7.1← 7.0语法变化

    sql-move.htm → sql-move.html

    + MOVE [ direction ] [ count ]− MOVE [ selector ] [ count ]
  9. PostgreSQL 7.0← 6.5语法变化

    − FETCH [ RELATIVE ] [ { [ # | ALL | NEXT | PRIOR ] } ] FROM ] cursor正文更新
  10. PostgreSQL 6.5← 6.4正文更新

    正文更新

同组命令

命令动词对象版本变动最近变更
CURSORS & PREPARED STATEMENTS游标与预备语句7 条↑
CLOSECLOSE— 8.32 次
关闭一个游标现存
DEALLOCATEDEALLOCATE— 8.32 次
释放一个预备语句现存
DECLAREDECLARE— 144 次
定义一个游标现存
EXECUTEEXECUTE— 8.21 次
执行一个预备语句现存
FETCHFETCH— 106 次
使用游标从查询中检索行现存
MOVEMOVE— 106 次
定位游标现存
PREPAREPREPARE— 9.03 次
预备一个语句以供执行现存