Test :
Code : SQL
UPDATE Adoption
SET paye = 3
WHERE client_id = 9;
Code : Console
ERROR 1062 (23000): Duplicate entry 'Erreur : paye doit valoir TRUE (1) ou FALSE (0)' for
Vérification de la date d'adoption
Il reste une petite chose à vérifier, et ce sera tout pour les vérifications de données : la date d'adoption !
En effet, celle-ci doit être postérieure ou égale à la date de réservation. Un client ne peut pas emporter chez lui un animal avant
même d'avoir prévenu qu'il voulait l'adopter.
À nouveau, essayez de faire le trigger vous-mêmes. Pour rappel, il ne peut exister qu'un seul trigger BEFORE UPDATE et un
seul BEFORE INSERT pour chaque table.
Code : SQL
INSERT INTO Erreur (erreur) VALUES ('Erreur : date_adoption doit
être >= à date_reservation.');
DELIMITER |
DROP TRIGGER before_insert_adoption|
CREATE TRIGGER before_insert_adoption BEFORE INSERT
ON Adoption FOR EACH ROW
BEGIN
IF NEW.paye != TRUE
-- On
remet la vérification sur paye
AND NEW.paye != FALSE
THEN
INSERT INTO Erreur (erreur) VALUES ('Erreur : paye doit
valoir TRUE (1) ou FALSE (0).');
ELSEIF NEW.date_adoption < NEW.date_reservation THEN
-Adoption avant réservation
INSERT INTO Erreur (erreur) VALUES ('Erreur : date_adoption
doit être >= à date_reservation.');
END IF;
END |
DROP TRIGGER before_update_adoption|
CREATE TRIGGER before_update_adoption BEFORE UPDATE
ON Adoption FOR EACH ROW
BEGIN
IF NEW.paye != TRUE
-- On
remet la vérification sur paye
AND NEW.paye != FALSE
THEN
INSERT INTO Erreur (erreur) VALUES ('Erreur : paye doit
valoir TRUE (1) ou FALSE (0).');
ELSEIF NEW.date_adoption < NEW.date_reservation THEN
-Adoption avant réservation
INSERT INTO Erreur (erreur) VALUES ('Erreur : date_adoption
doit être >= à date_reservation.');
END IF;
END |
Partie 5 : Sécuriser et automatiser ses actions
317/414
www.openclassrooms.com
Précédent

- 317/413

Suivant