【问题标题】:How do I access a table within a schema without having to use the schema prefix (Postgres + PHP)?如何在不使用模式前缀(Postgres + PHP)的情况下访问模式中的表?
【发布时间】:2014-12-30 19:01:09
【问题描述】:

我在架构下创建了一些表。目前,我可以使用以下方式访问架构中的表:

select * from myschema.mytable

我正在寻找避免使用架构名称的方法。类似:

select * from mytable

但我没有找到答案。

你能帮忙吗?谢谢

【问题讨论】:

  • 只是出于好奇 - 为什么要避免使用模式名称?
  • 可以使用SET搜索路径;如 SET search_path TO myschema, public;这会影响整个会话

标签: php postgresql


【解决方案1】:

架构搜索路径适用于此:

查看当前值:

SHOW search_path;

更改值(附加新架构):

SET search_path TO myschema,public;

记录在案here, in section 5.7.3

【讨论】:

  • 抱歉,但我不是很清楚。我如何在 PHP 中做到这一点?
  • @mrjayviper 只需在 PHP 下运行 SET 语句(在您的其他查询之前)。请注意,您要访问的架构不一定是第一个 - 搜索路径中的第一个架构仅控制在哪里创建新表(以及访问顺序,如果您在不同的架构中有多个同名的表)
猜你喜欢
  • 1970-01-01
  • 2021-02-16
  • 2019-02-24
  • 2012-08-08
  • 2019-06-27
  • 2018-06-03
  • 2022-11-16
  • 2016-06-01
  • 2019-10-17
相关资源
最近更新 更多