如何在PostgreSQL中动态计数每个表。它是手动工作,但不能动态工作

时间:2019-07-16 11:11:00

标签: postgresql postgresql-9.4 postgresql-9.5

我对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

0 个答案:

没有答案