CREATE TRIGGER checkPrixProduitAvantInsert
BEFORE INSERT ON produits
FOR EACH ROW
BEGIN
IF NEW.prix < 1 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Le prix du produit doit être supérieur à 1.';
END IF;
END;
Exercice 2 :
Solution :
CREATE TRIGGER logCommandesUpdate
AFTER UPDATE ON commandes
FOR EACH ROW
BEGIN
INSERT INTO historique_commandes (id_commande, ancien_montant, nouveau_montant, date_modification)
VALUES (OLD.id_commande, OLD.montant_total, NEW.montant_total, NOW());
END;
Exercice 3 :
Solution :
CREATE TRIGGER archiveBeforeDeleteUser
BEFORE DELETE ON utilisateurs
FOR EACH ROW
BEGIN
INSERT INTO archive_utilisateurs (id_utilisateur, nom, email)
VALUES (OLD.id_utilisateur, OLD.nom, OLD.email);
END;