我对PostgreSQL中的存储过程有一个疑问。实际上,我是PostgreSQL数据库的新手。我想在功能中动态存储每个表计数。就我而言,函数执行成功。但是当在下一步过程中传递表名时,它会抛出类似的错误
CREATE OR REPLACE FUNCTION tables_count (tablenames text[]) RETURNS
int AS
$total$
DECLARE
tablename text;
BEGIN
FOREACH tablename IN ARRAY tablenames LOOP
EXECUTE FORMAT('select count(*) from %s', tablename);
END LOOP;
RETURN 1;
END
$total$ LANGUAGE plpgsql;
在下一步过程中:
select tables_count(array '{table_1,table_2,table_3}')
在此语句中,它抛出错误。
我的预期输出是这样的:
table_1 2102
table_2 128
table_3 5429