级联删除未触发触发器

6
我有一个名为'player_instance'的表,还有一个名为'penalties'的表(其中有一个外键引用了'player_instance')。我还有一个名为'scores'的表。
我在'penalties'上有一个DELETE触发器,如果删除一行,则会更改'scores'中的列。我知道这个有效-当删除罚款时,它将减少'scores'中的一列。
我还有一个ON DELETE CASCADE,如果删除'player_instance',则所有相关的罚款也将被删除。我知道这也是有效的。
但是当删除'player_instance'时,它只会删除相关的罚款,并且不会触发修改'scores'的触发器。有谁能帮我理解为什么这不起作用吗?
非常感谢
3个回答

9

4

遇到问题时,请按照以下步骤排除故障。

  1. Delete (ON DELETE CASCADE) in foreign key reference

  2. for replacing (ON DELETE CASCADE) add this trigger

    CREATE TRIGGER DELETE_CHILD_ROW BEFORE DELETE ON PARANT_TABLE
    FOR EACH ROW
    BEGIN
        DELETE FROM CHILD_TABLE WHERE PARANT_ID=OLD.PARANT_ID;
    END;
    

0

是的,有的。将级联删除设置为设置为空,然后在第一级触发器中删除具有空键的记录。这应该会触发删除触发器。我刚遇到这个问题,正在测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接