【发布时间】:2020-10-02 23:01:00
【问题描述】:
我有一个名为car 的表和另一个名为inventory 的表。
car 有一个名为 needs_oil_change 的列(布尔值)
inventory 有一个名为oil_change_due_count INTEGER 的列
我想创建一个触发器,每当 car.oil_change_due_count 更改(或插入或删除新的汽车记录)时,该触发器将递增或递减 inventory.oil_change_due_count。
所以,简而言之,我想要一个触发器来保持库存汇总计数列 oil_change_due_count 在创建/删除/更新汽车记录时保持同步。
我尝试关注一些在线文档,例如:
https://w3resource.com/PostgreSQL/postgresql-triggers.php
https://dataegret.com/2017/10/postgresqls-transition-relations/
和其他人。
我还不能创建一个有效的。
我将如何编写可以处理该逻辑的触发器?
我刚刚发现了这个:
PostgreSQL: Checking for NEW and OLD in a function for a trigger
不确定它是否会回答我的问题,但我会尝试从中学习,看看是否可以适用于我的问题。
【问题讨论】:
-
我认为这需要
car和inventory表的架构。或者至少对car.needs_oil_change、inventory.oil_change_due_count andcar.oil_change_due_count. In particular whether there is field ininventory` 与car之间的关系进行更多解释? -
汽车有一个inventory_id FK。库存表没有汽车 FK。因此,汽车指向库存。这就是现在的布局。
标签: postgresql