耗时较长的批量/多次查询在Postgres中永远不会完成

|| 我在postgres中创建了一个将数据插入表中的函数。该函数接收一个字符串,并在处理后将值输入到表中。我想要的是能够在pgAdmin中多次调用该函数,而不是批量运行它们。 例: 在pgAdmin中,我打开我的sql查询窗口并输入
select customfunction(\'string1\');
select customfunction(\'string2\');
           ^
           .
           .
           .
           .
           v
select customfunction(\'string100000000\');
当我尝试运行此程序时,仅当我运行约6000行(6000个函数)时,它才有效。如果我在运行时取消它,则不会提交任何内容(甚至第一行也不提交)。我必须继续将它们分成批处理以完成整个查询。我如何才能做到这一点而无需分批运行它们。 我想复制并粘贴整个查询,然后等到一切完成。现在,如果我成批运行10000行以上,查询将无限期地运行,并且没有响应。 postgres是否有办法在运行每一行后提交每一行? 我还想知道在查询运行时是否有人可以确定正在处理的行。     
已邀请:
           postgres是否有办法在运行每一行后提交每一行? 如果启用了自动提交,则不会执行此操作-这也是默认设置,所以...您是否在调用之前加上begin语句?如果是这样,请在拨打电话之前提交... 另外,请考虑准备语句或执行杰克建议的操作。     
        您是否尝试过将字符串批处理到文件,将文件导入到表中(我将使用名为string的单个列将其称为string_table)并尝试:
select customfunction(string)
from string_table;
ETA:如果您需要某种进度指示器并且需要一次运行一次选择,则可以使用脚本语言的DBI来从文件或表中读取字符串,并在循环中遍历函数调用,然后在每次迭代时进行简单的控制台打印输出。     

要回复问题请先登录注册