Postgres游标中的获取限制

Fetch limit in Postgres cursor

当我们在游标上获取时,Postgres 中是否有与 Oracle LIMIT 子句内联的选项? 我使用的游标可能包含数百万行,这会降低游标性能。 我们是否可以选择限制每次提取的行数并分批完成提取?

是的,这就是游标默认执行的操作:

BEGIN;  -- start a transaction
PREPARE c CURSOR FOR SELECT ...
FETCH 1000 FROM c;
FETCH 1000 FROM c;
...
COMMIT;

游标不会“保存”数据,它会在您 运行 FETCH.

时从 table 中获取数据