【发布时间】:2020-06-04 17:02:54
【问题描述】:
我想在一个函数中设置搜索路径,必须从另一个表中选择要设置搜索路径的架构名称。我想做类似的事情:
set search_path to (select db_schema_name from Schenma_Name_Table where lookup_id = 'xxxx')
此语法不起作用。它说 - “(”或附近的语法错误。
【问题讨论】:
标签: postgresql schema search-path
我想在一个函数中设置搜索路径,必须从另一个表中选择要设置搜索路径的架构名称。我想做类似的事情:
set search_path to (select db_schema_name from Schenma_Name_Table where lookup_id = 'xxxx')
此语法不起作用。它说 - “(”或附近的语法错误。
【问题讨论】:
标签: postgresql schema search-path
set 不能使用动态表达式,但您可以使用接受任何表达式的set_config():
select set_config('search_path', (select string_agg(db_schema_name, ',')
from some_table
where lookup_id = 'xxxx'), false);
请注意,我使用string_agg() 以防查询返回多个值。
【讨论】: