Postgresql 将id附加到表的名称上

Postgresql 将id附加到表的名称上,postgresql,plpgsql,Postgresql,Plpgsql,我有一个select语句 select * from schema.table_id 其中ID是传递到函数中的数字 如何将此ID附加到我尝试过的表中| |,但这会导致语法错误。我也尝试过使用concat('schema.table,id::text),但是当它从%I运行select*时,表名给出了一个关系错误“schema.tablename”不存在,我假设这是因为它在引号中这个答案仅限于您在问题中提到的问题。你应该这样写: format('select * from %I.%I',schem

我有一个select语句

select * from schema.table_id
其中ID是传递到函数中的数字
如何将此ID附加到我尝试过的表中| |,但这会导致语法错误。我也尝试过使用
concat('schema.table,id::text)
,但是当它从%I运行
select*时,表名
给出了一个关系错误“
schema.tablename
”不存在,我假设这是因为它在引号中

这个答案仅限于您在问题中提到的问题。你应该这样写:

format('select * from %I.%I',schema_name,'table_'||id::text)


你能详细说明你的问题吗?有点难以理解您试图实现的目标。@kometen所以函数是func(int)在函数中我有一个if语句,if语句从schema.table_id表调用,其中id是函数的int。我需要将id附加到schema.table上,以便运行查询所有表是否具有相同的列?最好发布您迄今为止尝试过的函数定义
format('select * from "schema_name".%I','table_'||id::text)