Postgresql:根据以自动方式插入父表的数据插入和更新子表

时间:2016-07-14 07:14:21

标签: postgresql

我有一个主表,其中存在所有类型的电子邮件日志,例如交付,打开,点击等。现在我想为单独的事件创建子表,以便它应该自动插入主表中的行,如果它匹配的话事件名称,如果它不在子表中,则应在主表中每次插入后执行此操作。我尝试了很多,并阅读了有关分区但没有得到答案的答案,如果可能,请提供一个小例子或链接,谢谢。

1 个答案:

答案 0 :(得分:1)

PostgreSQL并没有真正有办法使用特定工具来开箱即用。根据我关于分区的经验,最好的方法是:

  1. 使用设置为false的check noinherit约束创建主表。这意味着您无法将行直接插入主表。将其命名为不是您直接查询的内容(这是可选的,但如果使用ORM则非常有用)。
  2. 使用正确的,不重叠的检查约束来设置子表。
  3. 创建一个只根据主表选择的视图。创建一个触发器,插入或更新子行广告返回*
  4. 然而,分区会影响很多其他事情。它可能不是你想要的。如果您只想将行插入到其他附加表中,只需为其创建一个触发器即可。那是什么。