gpt4 book ai didi

function - 为什么postgres不接受函数参数作为表名

转载 作者:行者123 更新时间:2023-11-29 14:07:53 27 4
gpt4 key购买 nike

我正在尝试使用以下函数更新表格。表名是一个函数参数。运行此函数会导致错误:

错误:“$1”处或附近的语法错误
第 1 行:(SELECT * FROM $1 ORDER BY $2 )

我尝试使用 EXECUTE 语句和 quote_ident 函数,但到目前为止没有成功。我确定我忽略了一些简单的事情......

CREATE OR REPLACE FUNCTION createdefaultorder(table_name varchar, sort_column varchar)
RETURNS integer AS
$BODY$
DECLARE
rRec RECORD;
counter integer := 0;
BEGIN
FOR rRec IN (SELECT * FROM table_name ORDER BY sort_column) LOOP
UPDATE table_name SET row_number = counter WHERE id = rRec.id;
counter := counter + 1;
END LOOP;
RETURN 0;
END;
$BODY$
LANGUAGE plpgsql;

最佳答案

使用 EXECUTEquote_ident 是正确的解决方案。如果您对此有困难,您可能想要显示该代码。

关于function - 为什么postgres不接受函数参数作为表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5788318/

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