I have a table called 'player_instance' and then a table called 'penalties' (which has a foreign key referencing player_instance). I also have a table called 'scores'.
I have a DELETE TRIGGER on penalties such that if a row is deleted then it will alter a column in scores. I know this works - when a penalty is deleted it will decrease a column in scores.
I also have a ON DELETE CASCADE where if player_instance is deleted then all associated penalties will also be deleted. I know this works too.
But when player_instance is deleted it will only delete the relevant penalties and not fire the trigger to alter scores. Can anyone help me understand why this is not working?
Many thanks
'Triggers are not activated by foreign key actions.'
http://dev.mysql.com/doc/refman/5.5/en/stored-program-restrictions.html
Ahhh!
Can anyone help me with a workaround?
For workaround follow the steps below
Delete (ON DELETE CASCADE
) in foreign key reference
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;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With