Exercice 7 - Triggers
Préparation des données
- Importer le script sql ex07_create_tables.sql disponible ici
Triggers à créer
Question #1
Pour chaque modification à la table resultat, insérez les informations nécessaires dans la table resultat_log APRÈS l'exécution de la requête INSERT, UPDATE et DELETE. Attention, lors d'un UPDATE, ajoutez les informations seulement si la colonne resultat_ms a été modifié.
colonne | insert | update | delete |
---|---|---|---|
operation | "insert" | "update" | "delete" |
ancien_resultat | null | old.resultat_ms | old.resultat_ms |
nouveau_resultat | new.resultat_ms | new.resultat_ms | null |
resultat_id | new.id | new.id | new.id |
date_operation | La date du jour | La date du jour | La date du jour |
Question #2
Quand on ajoute un résultat, validez que la valeur de la colonne cree_par existe dans la table usager. Si la valeur est invalide, empêchez la requête INSERT et retournez un message d'erreurs. La valeur à insérer dans le champ cree_par est le id d'un usager de la table usager.
Question #3
Effectuez les mêmes opérations que la question #2 quand on modifie un résultat mais sur la colonne modifie_par.
Question #4
AVANT l'insertion ou la modification de la description d'une épreuve dans la table epreuve_type, valider que la description n'est pas déjà utilisé. Si oui, modifiez la valeur à ajouter ou modifier en ajoutant (x) à la description. ( x vaudra le nombre de fois que le nom se retrouve dans la table -1 ) Ex. On veut insérer Marathon comme valeur mais elle est déjà présente comme description dans la table. On va utiliser Marathon (1) comme nouvelle valeur à insérer.