不同事件的相同触发器

时间:2013-08-23 07:52:23

标签: mysql database

我有一张表,可以跟踪分配给特定班次的员工人数。每次将用户分配到班次时,触发器会通过将have列增加一来更新表。 (这是由于性能问题)

插入后触发器触发。但我还需要它在用户被删除时触发。我真的不想使用基本相同的2个触发器。

无论如何要在不使用程序的情况下实现这一目标?

2 个答案:

答案 0 :(得分:1)

不,你无法实现这一点,你不想使用存储过程和两个触发器。在MySQL中,触发器只能附加到一个 trigger_time & trigger_event - 因为它是defined这样的方式:

trigger_time: { BEFORE | AFTER }
trigger_event: { INSERT | UPDATE | DELETE }

因此,在任何情况下,您都需要有两个触发器,如果​​您不想在其中重复某些代码,则必须使用存储过程。由于您不想使用存储过程,我相信您的问题没有可接受的解决方案。

答案 1 :(得分:0)

触发器与表和特定事件(插入,更新,删除)相关联。 你有两个动作:AFTER INSERT和AFTER DELETE,所以你需要两个触发器。