Tag: searchpath

如何检查给定模式中是否存在表格

Postgres 8.4和更高版本的数据库包含public模式中的公用表和公司模式中的公司特定表中的公用表。 company模式名称始终以'company'开头,并以公司编号结尾。 所以可能有图式: public company1 company2 company3 … companynn 一个应用程序总是与一家公司合作。 search_path在odbc或npgsql连接string中相应地指定,如: search_path='company3,public' 如何检查给定的表是否存在于指定的companyn模式中? select isSpecific('company3','tablenotincompany3schema') 应该返回false ,并且 select isSpecific('company3','tableincompany3schema') 应该返回true 。 在任何情况下,函数应该只检查通过的companyn模式,而不是其他模式。 如果给定的表存在public模式和传递模式,则该函数应该返回true 。 它应该适用于Postgres 8.4或更高版本。

search_path如何影响标识符parsing和“当前模式”

是否可以定义默认情况下在哪个模式中创build新表? (被称为“不合格的表格名称”。) 我已经看到了在Postgres中使用“searchpath”的一些细节,但是我认为它只能在检索数据而不是创build时使用。 我有一堆SQL脚本,它们创build了很多表。 而不是修改脚本,我想默认设置数据库创build表在一个特定的架构 – 当他们有不合格的名字。 这可能吗?