Postgres如何在查询中使用show search_path获取当前连接schema
Postgres查询中使用search_path结果的解决方案
show search_path是psql客户端专属的交互命令,不能直接嵌套在SQL查询逻辑中,你可以用Postgres内置的系统函数获取对应值:
适配你的需求场景的最优方案
你要判断表是否存在于当前默认schema(即不加schema前缀创建表时默认使用的schema,为search_path中第一个存在的schema),直接使用current_schema()函数即可,修改后的代码如下:
IF NOT (SELECT EXISTS ( SELECT 1 FROM information_schema.tables WHERE table_name = 'customer' AND table_schema = current_schema() )) THEN -- 你的业务逻辑 END IF;
如需获取完整的search_path返回值
如果你需要拿到和show search_path完全一致的完整路径字符串,可以使用current_setting('search_path')函数,示例如下:
-- 该查询返回结果与执行show search_path完全相同 SELECT current_setting('search_path');
内容的提问来源于stack exchange,提问作者sandevfares
相关产品推荐
相关产品推荐

