相关疑难解决方法(0)

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

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或更高版本.

sql database postgresql information-schema search-path

133
推荐指数
2
解决办法
14万
查看次数

如何用INSERT更新所有列... ON CONFLICT ...?

我有一个包含单个主键的表.当我尝试插入时,尝试插入具有现有密钥的行可能会导致冲突.我想允许插入更新所有列?这有什么简单的语法吗?我试图让它"upsert"所有列.

我正在使用PostgreSQL 9.5.5.

sql database postgresql insert upsert

9
推荐指数
1
解决办法
6210
查看次数

为PostgreSQL表创建别名

我有一张名为赋值的表.我希望能够使用assignments.column或homework.column读取/写入此表中的所有列,我该怎么做?

我知道这不是你通常会做的事情.我需要能够在短时间内提供向后兼容性.

我们有一个iOS应用程序,目前直接对数据库进行postgresql查询.我们正在更新所有应用以使用API​​.在构建API的过程中,开发人员决定更改表的名称,因为我们(愚蠢地)认为我们不需要向后兼容性.

现在,V1.0和API都需要能够写入这个表,所以我以后不必再做一些伏都教来转移/合并数据......我们正在使用Ruby on Rails作为API.

postgresql database-design view plpgsql

8
推荐指数
3
解决办法
8741
查看次数