Solutions

Exercice 1 :

Solution :

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;

Last updated