Maison >base de données >tutoriel mysql >Comment gérer une logique de déclenchement identique pour les événements d'insertion et de mise à jour dans MySQL ?

Comment gérer une logique de déclenchement identique pour les événements d'insertion et de mise à jour dans MySQL ?

DDD
DDDoriginal
2024-11-12 16:54:021047parcourir

How to Handle Identical Trigger Logic for Insert and Update Events in MySQL?

Déclencheur MySQL pour l'insertion et la mise à jour

Dans MySQL, il n'est pas possible de créer un seul déclencheur qui se déclenche à la fois pour les événements d'insertion et de mise à jour sur une table. Par conséquent, vous devrez créer deux déclencheurs distincts, un pour chaque événement.

Cependant, si le code du déclencheur est le même pour les événements d'insertion et de mise à jour, vous pouvez déplacer le code commun dans une procédure stockée et demandez aux déclencheurs d'appeler la procédure à la place. Cette approche vous permet d'éviter de répéter le même code dans plusieurs déclencheurs.

Voici un exemple de la façon dont vous pouvez procéder :

Créez la procédure stockée :

CREATE PROCEDURE common_trigger_code()
BEGIN
    -- Insert or update some data...
END //

Créer l'encart trigger :

CREATE TRIGGER insert_trigger
AFTER INSERT ON `table`
FOR EACH ROW
CALL common_trigger_code();

Créer le déclencheur de mise à jour :

CREATE TRIGGER update_trigger
AFTER UPDATE ON `table`
FOR EACH ROW
CALL common_trigger_code();

Cette solution garantit que le code commun n'est écrit qu'une seule fois et peut être facilement mis à jour dans le futur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn