使用Postgres从多个架构中选择(检索)所有记录

马西奥·马祖卡托(Marcio Mazzucato)

我有一个带有某些架构的PostgreSQL数据库,如下所示:

My_Database
 |-> Schemas
    |-> AccountA
    |-> AccountB
    |-> AccountC
    |-> AccountD
    |-> AccountE
           .
           .
           .
    |-> AccountZ

所有模式都有一个名为的表product该表有一个名为的列title我想知道是否有可能执行select语句从具有特定条件的所有模式中检索所有记录。

到目前为止,我发现的唯一方法是逐个帐户运行查询帐户,如下所示。

SET search_path TO AccountA;

SELECT title FROM product WHERE title ILIKE '%test%';

模式是动态创建的,因此我不知道它们的名称或存在的数量。

欧文·布兰德斯特(Erwin Brandstetter)

随着产业喜欢@Denis提到,这将是非常简单的。同样适用于Postgres 8.4。请务必考虑这些限制

基本上,您将拥有一个主表,我想是在一个主模式中:

CREATE TABLE master.product (title text);

各种模式中的所有其他表都继承自该表,可能会添加更多本地列:

CREATE TABLE a.product (product_id serial PRIMARY KEY, col2 text)
INHERITS (master.product);

CREATE TABLE b.product (product_id serial PRIMARY KEY, col2 text, col3 text)
INHERITS (master.product);

等等。

这些表不必共享相同的名称或架构。
然后,您可以一次查询所有表

SELECT title, tableoid::regclass::text AS source
FROM   master.product
WHERE  title ILIKE '%test%';

tableoid::regclass::text
这是分辨每一行来源的便捷方法。细节:

SQL提琴。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

通道就绪后,从多个通道中选择所有值

如何使用mgo从golang的mongodb集合中选择所有记录

如何使用Laravel通过外键检索所有记录

从多个联接表中选择最新记录

从postgres中的表中选择所有重复项

在BigQuery中选择没有记录的记录

从多个列中选择,但检索列名

在Laravel中检索附加到多个用户的所有记录

使用多个AND语句从Postgres表中选择随机行

对于通过空itab的所有条目,从数据库中选择所有记录

DynamoDB架构-检索所有用户

从具有多个联接的查询中选择最新的客户记录

为什么从postgres中选择所有表会根据所使用的语法给出不同的结果

Postgres;为什么无法使用\ z查看所有架构的所有表

通过多个hasMany关系检索所有记录

如何从休眠表中选择多个记录

在SQL Server中选择具有多个行条件的记录

如何从表中选择一列聚集并从关系表中选择所有记录[Laravel 5]

使用多个xpath表达式从xml文件中选择所有元素

即使表B中没有一个或多个ID(即FK),也要从表A中选择所有记录

OrientDB从所有图类中选择记录计数

在postgres中选择或提取jsonb数据内的所有键值

从表中选择给定编号所属的所有记录

从多个表中选择多行并使用 php while 循环打印所有行

从表中的分组记录中选择除最后一条记录之外的所有记录

如何使用类型为timestamptz的字段在postgres中选择两个日期之间的所有条目

使用 postgres 索引选择从 offset 到 limit 的所有记录

如何使用 tkinter 在 python 中选择多个文件或整个文件夹(它包含的所有文件的显示名称)?

选择具有多个类别的所有记录