在 Postgres 中设置一个变量



我想在一个函数中设置搜索路径,该函数的模式名称必须从另一个表中选择用于设置搜索路径的模式名称。我想做这样的事情:

set search_path to (select db_schema_name from Schenma_Name_Table  where lookup_id = 'xxxx')

此语法不起作用。它说 - 语法错误在"("或附近。

set

不能使用动态表达式,但您可以使用接受任何表达式的set_config()

select set_config('search_path', (select string_agg(db_schema_name, ',')
from some_table 
where lookup_id = 'xxxx'), false);

请注意,我使用了string_agg()以防查询返回多个值。

相关内容

  • 没有找到相关文章

最新更新