首页 > 解决方案 > Postgres 游标中的获取限制

问题描述

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

标签: postgresqlpostgresql-11

解决方案


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

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

游标不会“保存”数据,它会在您运行时从表中获取它们FETCH


推荐阅读