- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有什么方法可以从模式名称取自主选择中字段之一的值的模式进行子选择?有点像这样:
create schema a;
create table a.foo(id int);
create schema b;
create table b.foo(id int);
create table public.schemalist (schemaname text);
insert into schemalist values ('a'),('b');
select
schemaname,
(select count(*) from schemaname.foo)
from public.schemalist;
但以某种方式告诉 Postgres 在第二列的 schemaname
模式中计算 foo
表...?
最佳答案
您正在尝试根据模型中存储的数据创建 SQL
语句。我相信实现这一目标的唯一方法是使用 PL/pgSQL 函数并在内部构建(和执行)动态语句。
不过,我会仔细检查设计。我自己曾经做过几次类似的事情,但在每种情况下最好的解决方案都是摆脱这个功能。
编辑 请注意,使用针对每个客户的模式设计并不是一个坏习惯,我本人提倡这种方法。我的观点是——不可能使用目录详细信息来指定在单个语句中查询哪些表。 SQL 是声明式的,即 DBMS 将执行您在查询中明确提到的操作。
解决问题的几种方法:
作为服务注册商,为您创建专用架构,并创建和维护一系列 View ,这些 View 将跨越所有客户的架构表。比如,如果您有兴趣查看订单,请继续:
CREATE VIEW registrar.all_orders AS
SELECT * FROM cust1.orders
UNION ALL
SELECT * FROM cust2.orders
UNION ALL ...
为每个感兴趣的表创建并维护一个专用 View 。我所说的“维护”是指将新客户引入系统的过程还应更新所有注册商 View 。
在注册服务商的架构中创建一个函数以再次动态生成您感兴趣的查询。这可能很棘手,因为您将无法创建这样一个真正通用的函数:
RETURNS TABLE
一样定义它并显式定义列,RETURNS SETOF record
,但在这种情况下您将被迫提供调用函数时的列规范。这两者都为您提供了引用数据库中单个对象(使用已知标识符)并通过此抽象获取相关值列表的方法。
如果您的客户端(模式)数量稳定,我会选择 #1,如果您经常添加和/或删除客户端,我会选择 #2。
关于postgresql - postgres subselect 使用字段值作为模式名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26602085/
我有两个表 项目 confirmmasterdetail 我想从item表中选择不在confirmmasterdetail表中的记录当我运行此查询时,它返回空结果集。 SELECT itemId ,
所以我想为一个项目做以下事情。 我有 3 个表。前两个我们现在关心(第三个是为了让您更好地理解): author {id, name} authorship {id, id1, id2} paper
我有 2 张 table 交易表 +----+----------+-----+---------+---- | TID | CampaignID | DATE |
我有 2 个表:订单和预订。 订单表包含来自客户的唯一订单。每个客户都预订了 1 到 5 年的储物柜,因此预订表可以包含 1 到 5 行 pr。顺序(每年 1 行)。预订表中的每一行都包含 end_d
我正在尝试从 sql 查询中获取选择的逆。这是我的场景,我通过查询选择与一个家庭相关的付款,那些在过去 6 个月内捐款的人被认为是活跃的。我对过去 6 个月内没有条目的人感兴趣。 我可以选择过去 6
我有三个表: 帖子:id, title, authorId, text 作者:id, 名字, 国家 评论:id, authorId, text, postId 我想运行一个 mysql 命令,该命令选
我正在为这种简单的和平代码而伤脑筋,它不想工作,而且我想不出任何其他解决方案... 你能帮忙让它工作吗? SELECT chart FROM chart WHERE (select count(use
我正在尝试生成一份销售报告,其中列出每个产品 + 给定月份的总销售额。这有点棘手,因为产品价格可能会在整个月内发生变化。例如: 在 1 月 1 日和 1 月 15 日之间,我的公司以每个 10 美元的
我是 hibernate 的新手。我需要了解以下问题: (1) hibernate mapping中的subselect是什么? (2) 如何在 hbm 文件中映射 subselect? (3) 如果
我有一个这样的表: +--------------+--------------+--------------+ | userid | username | proxy
我正在尝试做这样的事情,但使用 Criteria 而不是 HQL: select user from User where user in ( select user from UserDom
我有两个表 [Users] 和 [Teams]。我的用户表看起来像这样 [ID][E-Mail]。我的 Teams 表看起来像这样 [Team][UserID]。 我需要像这样做一个子选择: SELE
有一些我正在努力工作的选择 SELECT DISTINCT a.client_key, client_name FROM Bloggers AS a LEFT JOIN BloggersPosts A
我有两个表,我想减少比较两个表之间的记录所花费的时间。我无法内部连接我的两个表,因为它们都是纵向表,这意味着 animalid 可以重复多个,即使它对于 milk 记录是唯一的 表1(我的错误表) +
我有两个具有相同字段但来自不同表的对象(foo_something 和 bar_something 实际上不是普通表,有几个连接操作的结果)。我使用 @Subselect hibernate 注释来获
有什么方法可以从模式名称取自主选择中字段之一的值的模式进行子选择?有点像这样: create schema a; create table a.foo(id int); create schema b
使用 postgresql 我有一个表 A,其中包含列 company_name、department_name、一些其他数据和 department . 我有另一个表 B,其中只有 company_
此查询未在合理时间内完成: mysql> select * from prices where symbol='GOOG' and date in (select max(date) from pri
所以,我有一张捐款表。它存储一个 $ 值和一个列框,他们可以在其中选择货币或实物捐赠。实物捐赠可以有美元,但通常没有。实物捐赠是指有人捐赠了实物元素,例如割草机、 table 、椅子等。然后我有捐助者
当查询包含数百万文档的 MongoDB 集合以及对非索引字段进行过滤或排序时,查询运行速度太慢,因为 mongo 需要扫描整个集合。在 Mysql 上,这可以通过执行仅过滤最后 40k 行的子选择来实
我是一名优秀的程序员,十分优秀!