Bonjour,
je cherche un moyen de faire un trigger qui va vérifier une valeur contenue dans une table avant de valider un INSERT.
Dans mon exercice j'ai une colonne contenant ID_Fonction dans ma table Employe.
Un employé ne peut occuper qu'une fonction donc le but du trigger est de valider l'opération ou la refuser si on veut faire un INSERT dans la colonne ID_Fonction.
Bien que ma colonne ne puisse contenir qu'une valeur, je voudrais quand même résoudre ce problème par un trigger.
Donc pour le moment j'ai:
Avec ce trigger lors d'un INSERT d'une valeur, si la valeur est NULL je reçois ce msg: Error Code: 1136. Column count doesn't match value count at row 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 DROP TRIGGER IF EXISTS t_before_insert; DELIMITER | CREATE TRIGGER t_before_insert BEFORE INSERT ON Employe FOR EACH ROW BEGIN IF NEW.ID_Fonction IS NOT NULL THEN INSERT INTO Erreur VALUES ('Occupe déjà une fonction'); -- L'erreur est dans une table erreur avec un champ unique END IF; END| DELIMITER ;
En fait, lorsque je regarde le trigger, la valeur NEW.ID_Foncion n'est pas NULL ce qui est logique mais comment tester si l'ancienne valeur était différence de NULL?
Merci pour votre aide
Ersch
Partager