Avril
17
2008

Déclencheurs dans Mysql

Un déclencheur ou le déclencheur est un événement qui est exécutée lorsque vous effectuez une action sur une table particulière. Est pratique par exemple si nous voulons insérer des données dans une table automatiquement copiées des données dans un autre. En MySQL, cette fonction est incluse depuis la version 5.0.

Pour créer un déclencheur, avant que nous ayons les tables créées. Une fois cela fait, nous nous dirigeons vers la table sur laquelle le contrôle si une action particulière est effectuée. Appliqué à une étude de cas pour une meilleure compréhension, nous avons une ligue où les jeux sont joués, ces jeux seront de déterminer la classification, de sorte que lorsque vous insérez un jeu se déroulera sur la gâchette qui mettra à jour les données sur vos ordinateurs: matchs gagnés, les jeux perdus, buts pour, et ainsi de suite.

Eh bien, nous sommes dans le tableau, où l'on voit votre structure. Juste au-dessus de l'onglet SQL apparaît, nous cliquons. Nous charger une autre page où nous devons écrire le code de la gâchette. Il est important de mettre en tant que délimiteur "|" sans les guillemets, parce que sinon, il est fort probable que nous l'erreur. Tournons-nous vers un exemple, qui comme on le voit plus clairement:




-------------------------

CREATE TRIGGER BEFORE INSERT ON partis actualizarequipos

POUR CHAQUE

ROW

commencer

NEW.golesl SI> ALORS NEW.golesv

MISE À JOUR équipes SET +1 où pg = pg = NEW.idel idequipo;

MISE À JOUR équipes définir des points = points 3 OÙ idequipo = NEW.idel;

MISE À JOUR équipes SET gf gf = + OÙ NEW.golesl idequipo = NEW.idel;

MISE À JOUR équipes SET gc = gc + OÙ NEW.golesv idequipo = NEW.idel;

MISE À JOUR équipes ensemble où pp = p +1 = NEW.idev idequipo;

MISE À JOUR équipes SET gf gf = + OÙ NEW.golesv idequipo = NEW.idev;

MISE À JOUR équipes SET gc = gc + OÙ NEW.golesl idequipo = NEW.idev;

fin si;

SI NEW.golesl <NEW.golesv ALORS

MISE À JOUR équipes définir des points = points 3 OÙ idequipo = NEW.idev;

MISE À JOUR équipes SET +1 où pg = pg = NEW.idev idequipo;

MISE À JOUR équipes SET gf gf = + OÙ NEW.golesv idequipo = NEW.idev;

MISE À JOUR équipes SET gc = gc + OÙ NEW.golesl idequipo = NEW.idev;

MISE À JOUR équipes ensemble où pp = p +1 = NEW.idel idequipo;

MISE À JOUR équipes SET gf gf = + OÙ NEW.golesl idequipo = NEW.idel;

MISE À JOUR équipes SET gc = gc + OÙ NEW.golesv idequipo = NEW.idel;

fin si;

IF THEN NEW.golesl = NEW.golesv

MISE À JOUR équipes SET pe = pe = +1 où idequipo NEW.idev;

MISE À JOUR équipes SET points = points de +1 où idequipo = NEW.idev;

MISE À JOUR équipes SET points = points de +1 où idequipo = NEW.idel;

MISE À JOUR équipes SET gf gf = + OÙ NEW.golesv idequipo = NEW.idev;

MISE À JOUR équipes SET gc = gc + OÙ NEW.golesl idequipo = NEW.idev;

MISE À JOUR équipes SET pe = pe = +1 où idequipo NEW.idel;

MISE À JOUR équipes SET gf gf = + OÙ NEW.golesl idequipo = NEW.idel;

MISE À JOUR équipes SET gc = gc + OÙ NEW.golesv idequipo = NEW.idel;

fin si;

fin

-------------------------

Opération:

1. Créer le déclencheur nommé 'actualizarequipos ».

2. Avec BEFORE INSERT ON matchs sont vérifiées avant d'entrer des données.

3. Avec FOR EACH ROW passe par chaque tuple (ligne) de l'équipement pour vérifier votre identité pour qu'il corresponde à celui des équipes en lice le jeu.

4. Avec SI vérifie si le résultat est gagnant, de dessiner ou de défaite pour chaque équipe, et la NOUVELLE. se réfère aux nouvelles données entrées, à savoir, les objectifs qui ont été introduites dans le parti.

5. MISE À JOUR mises à jour toutes les données sur votre ordinateur en fonction des résultats et des objectifs.

6. Enfin, après avoir entré les données sont mises à jour des données de ces équipes, et avec la requête suivante pourrait connaître la classification:


SELECT * FROM ORDER BY DESC points de l'équipement, gf DESC



Sélectionne toutes les données dans les équipes de table et classe au premier rang par les points, et si vous les avez, en buts marqués.

mysql

Laisser un commentaire