【PostgreSQL】爸爸,找不到表

文章摘要

这篇文章旨在了解PostgreSQL中search_path的设置及其重要性。通过实际的代码示例和具体的使用案例,我们可以学习到search_path的作用、优点和设置方法等内容。

角色进入舞台

嘉俊:大地的儿子,是一个1岁4个月大的男孩,他还不会叫我爸爸。
大地:嘉俊是我的爸爸。我已经当爸爸一年四个月了,我深深地爱我的妻子和嘉俊。

卡君的作业

卡君:“爸爸,事情不太顺利…”

大地:“怎么了,卡克?”

卡君:“在PostgreSQL中找不到表格…”

大地:是吗,这真是个麻烦。“但没关系,我们一起来解决吧。”

卡君:“但是,为什么找不到呢?表名应该没有错的…”

戴驰:“可能是因为搜索路径中没有包含有一个拥有表的架构。”

卡君:「模式?搜索路径?」

搜索路径的说明

大地:“是的。在PostgreSQL中,当查找表、视图和其他数据库对象时,需要决定要查看哪个模式。这就是search_path。”

卡:嗯,那你是怎么确认的呢?

大地:“你可以使用‘SHOW search_path;’命令来确认当前的search_path。”

卡君:“那好吧,我来试试看。”

搜索路径的确认

卡君输入了一条命令,并确认了当前的search_path。

卡君:“嗯,这里应该有一个表但架构名称却找不到。”

如果这样的话,你只需将该模式添加到search_path中即可。

搜索路径的设置方法

卡君:“那个要怎么设置呢?”

大地:「你可以使用命令 ‘SET search_path TO myschema,public;’ 来进行设置。这样就可以查看myschema和public的模式了。」

卡:那样你能找到桌子吗?

大地:是的,我们可以优先查看特定的模式。

卡君的挑战

卡君:“原来如此,我会试一试的!”

大地:“嗯,试着努力一下吧!”

卡君输入了命令,并成功找到了桌子。

卡君:“太好了,找到了!”

大地:“做得不错!”

卡君:“嗯,谢谢爸爸!”

广告
将在 10 秒后关闭
bannerAds