FETCH 是一个用于从先前 声明 的游标中检索行的实用命令。
FETCH 命令一直存在于 PostgreSQL 中。
不要将 FETCH 游标命令与 PostgreSQL 13 中添加的 SELECT 语句的 FETCH { FIRST | NEXT } [ n ] { ROW | ROWS } 语法混淆。
变更历史
进行中
- PostgreSQL 9.0
FROMandIN关键字已成为可选 (commit 2ea179f3)
FETCH 命令存在于所有 PostgreSQL 版本中。
示例
FETCH 的基本用法示例
postgres=# BEGIN ; BEGIN postgres=*# DECLARE foo_cursor CURSOR FOR SELECT * FROM foo; DECLARE CURSOR postgres=*# FETCH 1 FROM foo_cursor; id | val ----+------------------------------ 1 | 2022-10-25 08:21:20.67438+01 (1 row)
尝试从不存在的游标中检索行
postgres=*# CLOSE foo_cursor ; CLOSE CURSOR postgres=*# FETCH 1 FROM foo_cursor; ERROR: cursor "foo_cursor" does not exist
参考资料
- PostgreSQL 文档: FETCH
