Bonjour,
alors moi j'aimerais créer un trigger sur une table location, qui lors d'un ajout sur cette table, fait un update sur 2 autres tables mettant à jour les champs concernés.

Ces champs sont de type boolean donc true ou false.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
CREATE OR REPLACE FUNCTION dispo () RETURNS trigger AS 
'
  DECLARE
    nodispo boolean;
    client varchar(4);
    voiture varchar(4);
  BEGIN 
    select into nodispo rendu from location;
    select into client id_client from location;
    select into voiture id_vehicule from location;
      update clients set location_dispo = nodispo 
	where id_client = client;
      update vehicules set dispo_vehicule = nodispo 
	where id_vehicule = voiture;
    return new;
  END; 
' 
LANGUAGE 'plpgsql';
Ensuite je définis cet fonction en trigger :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
CREATE TRIGGER trig_dispo AFTER INSERT ON location 
  FOR EACH ROW 
  EXECUTE PROCEDURE dispo();
Ce code ne tiens en compte que de la première Insertion dans la table "location" et ne marche plus lors du deuxième insertion.

Quelqu'un pourrait m'aider et aussi m'expliquer le fonctionnement du Return NEW ??

merci d'avance,

KiAhS