从csv导出数据时执行触发器

时间:2012-06-25 14:35:15

标签: sql postgresql ubuntu bigdata

我们在postgres database.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 / (从csvpath复制tablename ...)向这七个表中导入更多行时。中间视图也需要通过触发器方法计算和更新< / p>

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

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

2 个答案:

答案 0 :(得分: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 ...

完成后,重新考虑数据库模型。通过您提供的小信息,确实听起来您的模型并不理想。

答案 1 :(得分:0)

查看PL/pgSQL triggers上的PostgreSQL文档,尤其是this example,您的活动看起来很相似。