我有两个表,salesorders
是父表,invoices
是子表。我在触发器内运行一个存储过程,该存储过程在每次更新 invoices
表后运行。我想向此存储过程添加 UPDATE
语句。
现在,salesorders
和 invoices
都有一个 state
列。我想要做的是将销售订单状态更新为 0
当且仅当每个子发票的状态为 4 或更高时。有些发票状态也为 NULL,如果我有 3 张发票,其中 2 张的状态为 4 或更多,其中 1 张为 NULL,我不希望将销售订单state
更新为0。
我正在考虑将每个销售订单的发票总数与发票状态 > 4 的数量进行比较,但我似乎仍然无法使其正常工作。我该怎么办?
最佳答案
评论太长了。
首先,我想问一下您是否真的需要这个。您能否优化数据库,以便查看单次销售的查询可以轻松地将所有发票收集在一起以检查状况?
如果没有,请考虑触发器。因为这是一个触发器,所以事情可能会变得棘手。我建议添加一列来指定有多少张发票不满足条件。
您可以通过仅查看当前行来保持最新 - 尽管它确实需要比较新
和旧
值。
然后您可以将此值用于有关销售状态的逻辑。
关于mysql - 当所有 child 都满足某些标准时更新 parent ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57890620/