如何检查给定架构中是否存在表

如何检查给定架构中是否存在表

Postgres 8.4及更高版本的数据库包含public中的架构和特定于公司的表。company模式
company架构名称总是以'company'以公司号码结束。
因此,可能存在这样的模式:

publiccompany1
company2
company3...companynn

应用程序总是与单个公司一起工作。
这个search_path在ODBC或npgsql连接字符串中相应地指定,如下所示:

search_path='company3,public'

如何检查给定表是否存在于指定的companyn图式?

例:

select isSpecific('company3','tablenotincompany3schema')

应该回来false,和

select isSpecific('company3','tableincompany3schema')

应该回来true.

无论如何,函数应该只检查companyn架构已传递,而不是其他架构。

如果两个表中都存在给定的表,则public和传递的模式,函数应该返回。true.
它应该适用于Postgres 8.4或更高版本。


杨__羊羊
浏览 509回答 3
3回答

UYOU

也许用信息图式:SELECT EXISTS(     SELECT *      FROM information_schema.tables      WHERE        table_schema = 'company3' AND        table_name = 'tableincompany3schema');
打开App,查看更多内容
随时随地看视频慕课网APP