【问题标题】:Fetch limit in Postgres cursorPostgres 游标中的获取限制
【发布时间】:2023-03-31 19:30:02
【问题描述】:

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

【问题讨论】:

标签: postgresql postgresql-11


【解决方案1】:

是的,这就是光标默认的作用:

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

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

【讨论】:

  • 我可以每次提取几千行并插入到表中,而不是逐行提取或单次提取吗?
  • 当然;你会用程序语言来写。这个想法是一样的。在这种情况下,逐行获取游标会更容易。
猜你喜欢
  • 2015-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-06
  • 1970-01-01
相关资源
最近更新 更多