SQL COMMAND · 游标与预备语句
MOVE
定位游标
position a cursor
MOVE游标与预备语句引入 6.4(基线)现存至 20 devel6 次语法变更
- 动词
MOVE- 对象
—- 分组
- 游标与预备语句
- 引入版本
- 6.4(基线)
- 状态
- 现存
- 语法变更次数
- 6
- 手册小节数
- 5
版本轨迹
相对 PostgreSQL 17 无变化。
语法铁道图 PostgreSQL 18
沿轨道从左向右阅读,分岔表示选择,绕行表示可选,回环表示重复。方框为参数,点击带下划线的参数可展开子规则。
direction
语法概要
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 在不检索任何数据的情况下重新定位游标。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 语句。
另见
语法演化
相邻大版本之间的差异,新的在前。版本号链接到对应快照。
PostgreSQL 10← 9.6语法变化
+ MOVE [ direction ] [ FROM | IN ] cursor_name− MOVE [ direction [ FROM | IN ] ] cursor_namePostgreSQL 9.1← 9.0语法变化
+ NEXT+ PRIOR+ FIRST+ LAST+ ABSOLUTE count+ RELATIVE count+ count+ ALL+ FORWARD+ FORWARD count+ FORWARD ALL+ BACKWARD+ BACKWARD count+ BACKWARD ALLPostgreSQL 9.0← 8.4语法变化
+ MOVE [ direction [ FROM | IN ] ] cursor_name− MOVE [ direction { FROM | IN } ] cursornamePostgreSQL 8.4← 8.3正文更新
正文更新PostgreSQL 8.0← 7.4正文更新
正文更新PostgreSQL 7.4← 7.3语法变化
+ MOVE [ direction { FROM | IN } ] cursorname− MOVE [ direction ] [ count ]− { IN | FROM } cursor正文更新PostgreSQL 7.2← 7.1正文更新
正文更新PostgreSQL 7.1← 7.0语法变化
sql-move.htm → sql-move.html
+ MOVE [ direction ] [ count ]− MOVE [ selector ] [ count ]PostgreSQL 7.0← 6.5语法变化
− FETCH [ RELATIVE ] [ { [ # | ALL | NEXT | PRIOR ] } ] FROM ] cursor正文更新PostgreSQL 6.5← 6.4正文更新
正文更新