在 Postgres 中设置变量
Set a variable in Postgres
我想在函数中设置搜索路径,必须从另一个 table 中选择用于设置搜索路径的架构名称。我想做类似的事情:
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()
以防查询 returns 多个值。
我想在函数中设置搜索路径,必须从另一个 table 中选择用于设置搜索路径的架构名称。我想做类似的事情:
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()
以防查询 returns 多个值。