postgresql - 在 Postgres 中设置变量
问题描述
我想在必须从另一个表中选择要设置搜索路径的架构名称的函数中设置搜索路径。我想做类似的事情:
set search_path to (select db_schema_name from Schenma_Name_Table where lookup_id = 'xxxx')
这种语法不起作用。它说 - “(”或附近的语法错误。
解决方案
set
不能使用动态表达式,但你可以使用set_config()
which 接受任何表达式:
select set_config('search_path', (select string_agg(db_schema_name, ',')
from some_table
where lookup_id = 'xxxx'), false);
请注意,我使用string_agg()
了查询返回多个值的情况。
推荐阅读
- c# - 使用正则表达式分组结构匹配部分字符串
- spring-boot - MockMvc 保持为空
- javascript - 如何在 sequelize findAll 中包含特定关联?
- python - 我不知道为什么会出现“TypeError: '<' 在 'str' 和 'int' 的实例之间不支持”错误
- postgresql - 分布 PostgreSQL 游标中的记录数
- facebook - 我的 Facebook 测试用户的帖子中没有喜欢/评论按钮。这是为什么?
- sql - 使用假脱机时如何删除列具有空值的空格。我正在使用 Toad 和 Oracle 11g
- electron - 无法将 Electron appx 应用上传到 MS 应用商店
- python - 如何调用基于类的视图 CBV 中定义的函数/方法?
- erlang - 理解 Erlang 中的选择性接收