gpt4 book ai didi

postgresql - 每 1000 行更新一次表

转载 作者:行者123 更新时间:2023-11-29 14:30:12 24 4
gpt4 key购买 nike

我正在尝试使用 Postgres 每 1000 行更新一次特定记录。我正在寻找一种更好的方法来做到这一点。我的功能描述如下:

CREATE OR REPLACE FUNCTION update_row()
RETURNS void AS
$BODY$

declare

myUID integer;
nRow integer;
maxUid integer;

BEGIN

nRow:=1000;
select max(uid_atm_inp) from tab into maxUid where field1 = '1240200';

loop
if (nRow > 1000 and nRow < maxUid) then

select uid from tab into myUID where field1 = '1240200' and uid >= nRow limit 1;

update tab
set field = 'xxx'
where field1 = '1240200' and uid = myUID;

nRow:=nRow+1000;
end if;


end loop;

END; $BODY$
LANGUAGE plpgsql VOLATILE

我怎样才能改进这个程序?我觉得有问题。循环没有结束并且花费了太多时间。

最佳答案

要在 SQL 中执行此任务,您可以使用 row_number 窗口函数并仅更新数字可被 1000 整除的那些行。

您的循环没有结束,因为其中没有 EXITRETURN

关于postgresql - 每 1000 行更新一次表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52973621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com