# 2) Destruction de la station DELETE FROM station WHERE id=2; #impossibe il y a une clé étrangère # 3) Insertion d'une nouvelle station INSERT INTO station VALUES (3, "yolo", 350, "Antille", 80000, "Guadeloppe"); # 4) Insertion d'une nouvelle station avec INSERT INTO station VALUES (4, "swag", 666, "nullepart", 85000, "anywhere"); # 5) implanter par un trigger la règle suivante : si le prix d’une activité baisse, alors le tarif de la station doit augmenter de la différence. DELIMITER // CREATE TRIGGER udp_prix AFTER UPDATE ON activite FOR EACH ROW BEGIN IF NEW.prix < OLD.prix THEN UPDATE station SET tarif=tarif +(OLD.prix - NEW.prix); END IF; END; // # 7) ajouter le nb d'activité ALTER TABLE station ADD nbActivites INT DEFAULT 0; # 8) trigger qui maintient cette information DELIMITER // CREATE TRIGGER maintient AFTER INSERT ON activite FOR EACH ROW BEGIN UPDATE station SET nbActivites = nbActivites + 1; END; // DELIMITER // CREATE TRIGGER supp AFTER DELETE ON activite FOR EACH ROW BEGIN UPDATE station SET nbActivites = nbActivites - 1; END; // # 9) interdire par un tigger l'insertion d'une ligne dans la table séjour si le solde du client est inf au nb de palce * tarif station DELIMITER // CREATE TRIGGER interdiction AFTER INSERT ON sejour FOR EACH ROW BEGIN IF client.solde < (sejour.nbplace * station.tarif) THEN DELETE FROM sejour WHERE idcli=NEW.idcli; END IF; END // -------------------------------------------------------------------question 1 procedure delimiter // DROP FUNCTION IF EXISTS questionUn // CREATE FUNCTION questionUn (idc INT) RETURNS VARCHAR(50) DETERMINISTIC BEGIN DECLARE param1 VARCHAR(50); SELECT CONCAT(nom,prenom) INTO param1 FROM client WHERE id=idc; RETURN param1 ; END // --appel : select questionUn(1) -------------------------------------------- --exemple procedure delimiter // DROP PROCEDURE IF EXISTS questionDeux// CREATE procedure questionDeux () BEGIN SELECT nom,prenom FROM client ; END // --appel : call questionDeux() -------------------------------------------------------- --question 2 DROP view IF EXISTS listeActivite; CREATE view listeActivite as select activite1(station.nom), station.nom from station; -------------------------------------------------------------------------- --question 3 delimiter // DROP PROCEDURE IF EXISTS actualiser// CREATE procedure actualiser (pourc FLOAT, nomSta VARCHAR(20)) BEGIN DECLARE param1 INT; Update station set tarif=tarif*(pourc+1) where nom=nomSta; select id INTO param1 from station where nom=nomSta; Update activite set prix=prix*(pourc+1) where idStation=param1; END // -----------------------------------------------------------------