0

我们在 postgres 数据库中有七个表。t1,t2,t3,t4,t5,t,t7 每个表都包含具有重复 product_id 编号的各种列

product_id 编号存在于每个表中。这意味着

 t1 --> 123(product_id)
 t1 --> 123(with various other column data)
 t2 --> 123 upto  t7

这个“123”产品ID将存在于每个表中直到t7。而且,该表将有多个相同的product_ids。

当前要求是处理我服务器中的所有 product_id,我需要创建具有唯一产品 ID 的中间表。

每当我更新表(t1..t7)时,都必须触发中间表进行更新。

Edit1:必须通过将所有七个表放在一起来生成中间视图。

当我再次从 csv/ (copy tablename from csvpath...)向这七个表中导入几行时。中间视图也需要通过触发方法计算和更新

因为这是频繁的操作。从 csv 更新表并再次计算和更新中间视图。

那么,通过从 csv 导入更新七个表时,应该如何编写触发器?

4

2 回答 2

1

不要创建表,而是创建从这些表中进行选择的视图。

create or replace view all_product_ids
as
 select product_id
 from t1
 union 
 select product_id
 from t2
 union 
 ... you get the picture ...

完成此操作后,请重新考虑您的数据库模型。根据您提供的少量信息,听起来您的模型并不理想。

于 2012-06-25T14:50:09.380 回答
0

查看有关PL/pgSQL 触发器的 PostgreSQL 文档,尤其是在这个示例中,您的活动看起来很相似。

于 2012-06-25T14:54:23.210 回答