Maison >base de données >tutoriel mysql >Les déclencheurs MySQL peuvent-ils être utilisés pour lancer des actions sur des instructions SELECT ?

Les déclencheurs MySQL peuvent-ils être utilisés pour lancer des actions sur des instructions SELECT ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-03 09:06:30709parcourir

Can MySQL Triggers Be Used to Initiate Actions on SELECT Statements?

Déclenchement d'actions sur des instructions SELECT dans MySQL

Des déclencheurs peuvent-ils être utilisés pour lancer des actions lorsqu'une instruction SELECT est exécutée sur une table donnée ?

Réponse :

Non, les déclencheurs MySQL sont conçus pour répondre spécifiquement aux opérations INSERT, UPDATE ou DELETE. Ils ne peuvent pas être invoqués par les instructions SELECT.

Solution alternative :

Pour obtenir la fonctionnalité souhaitée, où une instruction INSERT est exécutée sur la table X après avoir sélectionné un enregistrement de la table Oui, une approche plus indirecte est requise.

  1. Créer des procédures stockées :

    • Développer des procédures stockées qui exécutent les SELECT souhaités sur la table X.
  2. Restreindre l'accès direct SELECT :

    • Modifier les privilèges utilisateur pour restreindre l'accès direct SELECT à la table X et forcer utilisateurs d'utiliser les procédures stockées à la place.
  3. Modifier les procédures stockées :

    • Améliorez les procédures stockées pour inclure un appel à une procédure stockée supplémentaire chargée d'exécuter l'action prévue (par exemple, INSERT) lorsqu'elle est déclenchée.

En implémentant cette solution, le comportement souhaité de déclenchement d'actions sur des instructions sélectionnées peut être atteint.

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