Postgres 8.4及更高版本的数据库包含public模式中的模式和公司特定表中的公用表company.
company模式名称始终'company'以公司编号开头并以公司编号结束.
所以可能有以下模式:
public
company1
company2
company3
...
companynn
Run Code Online (Sandbox Code Playgroud)
应用程序始终适用于单个公司.
的search_path相应指定在ODBC或连接Npgsql的字符串,如:
search_path='company3,public'
Run Code Online (Sandbox Code Playgroud)
如何检查给定表是否存在于指定的companyn模式中?
例如:
select isSpecific('company3','tablenotincompany3schema')
Run Code Online (Sandbox Code Playgroud)
应该返回false,并
select isSpecific('company3','tableincompany3schema')
Run Code Online (Sandbox Code Playgroud)
应该回来true.
在任何情况下,该函数应仅检查companyn传递的模式,而不检查其他模式.
如果两者public和传递的模式中都存在给定的表,则该函数应该返回true.
它适用于Postgres 8.4或更高版本.
我有一个包含单个主键的表.当我尝试插入时,尝试插入具有现有密钥的行可能会导致冲突.我想允许插入更新所有列?这有什么简单的语法吗?我试图让它"upsert"所有列.
我正在使用PostgreSQL 9.5.5.
我有一张名为赋值的表.我希望能够使用assignments.column或homework.column读取/写入此表中的所有列,我该怎么做?
我知道这不是你通常会做的事情.我需要能够在短时间内提供向后兼容性.
我们有一个iOS应用程序,目前直接对数据库进行postgresql查询.我们正在更新所有应用以使用API.在构建API的过程中,开发人员决定更改表的名称,因为我们(愚蠢地)认为我们不需要向后兼容性.
现在,V1.0和API都需要能够写入这个表,所以我以后不必再做一些伏都教来转移/合并数据......我们正在使用Ruby on Rails作为API.