THEN
INSERT INTO Erreur (erreur) VALUES ('Erreur : sexe doit
valoir "M", "F" ou NULL.');
END IF;
END |
DELIMITER ;
Test :
Code : SQL
INSERT INTO Animal (nom, sexe, date_naissance, espece_id)
VALUES ('Babar', 'A', '2011-08-04 12:34', 3);
Code : Console
ERROR 1062 (23000): Duplicate entry 'Erreur : sexe doit valoir "M", "F" ou NULL.' for key
Et voilà, ce n'est pas parfait, mais au moins le message d'erreur permet de cerner d'où vient le problème. Et Babar n'a pas été
inséré.
Vérification du booléen dans Adoption
Il est important de savoir si un client a payé ou non pour les animaux qu'il veut adopter. Il faut donc vérifier la valeur de ce qu'on
insère dans la colonne paye, et refuser toute insertion/modification donnant une valeur différente de TRUE (1) ou FALSE (0).
Les deux triggers à créer sont très similaires à ce que l'on a fait pour la colonne sexe d'Animal. Essayez donc de construire les
requêtes vous-mêmes.
Code : SQL
INSERT INTO Erreur (erreur) VALUES ('Erreur : paye doit valoir TRUE
(1) ou FALSE (0).');
DELIMITER |
CREATE TRIGGER before_insert_adoption BEFORE INSERT
ON Adoption FOR EACH ROW
BEGIN
IF NEW.paye != TRUE
-- ni TRUE
AND NEW.paye != FALSE
-- ni FALSE
THEN
INSERT INTO Erreur (erreur) VALUES ('Erreur : paye doit
valoir TRUE (1) ou FALSE (0).');
END IF;
END |
CREATE TRIGGER before_update_adoption BEFORE UPDATE
ON Adoption FOR EACH ROW
BEGIN
IF NEW.paye != TRUE
-- ni TRUE
AND NEW.paye != FALSE
-- ni FALSE
THEN
INSERT INTO Erreur (erreur) VALUES ('Erreur : paye doit
valoir TRUE (1) ou FALSE (0).');
END IF;
END |
DELIMITER ;
Partie 5 : Sécuriser et automatiser ses actions
316/414
www.openclassrooms.com
Précédent

- 316/413

Suivant