diff --git a/trigger.sql b/trigger.sql new file mode 100644 index 0000000000000000000000000000000000000000..73cc68247307cb355f079ff29e75909b22522c18 --- /dev/null +++ b/trigger.sql @@ -0,0 +1,32 @@ +CREATE TRIGGER max_odometre_atteint AFTER UPDATE OF odometre ON vehicule +REFERENCING OLD TABLE AS voiture +WHEN (NEW.odometre >= caracteristiques_vehicule.odometre_max FROM vehicule JOIN caracteristiques_vehicule ON vehicule.type = caracteristiques_vehicule.type) +EXECUTE FUNCTION vendre_vehicule(); + +CREATE FUNCTION vendre_vehicule() RETURNS trigger AS $test$ +BEGIN + CREATE TABLE avendre ( + immatriculation TypeImmatriculation, + marque TypeTexteCourt, + modele TypeTexteCourt, + odometre INT NOT NULL, + date_mise_en_service DATE NOT NULL, + consommation FLOAT NOT NULL, + "type" TypeVehicule NOT NULL, + kw_recharge FLOAT, + ); + INSERT INTO avendre ( + SELECT + voiture.immatriculation, + voiture.marque, + voiture.modele, + voiture.odometre, + voiture.date_mise_en_service, + voiture.consommation, + voiture.type, + voiture.kw_recharge + FROM voiture + ); +END; +$test$ +LANGUAGE plpgsql; \ No newline at end of file