Bonjour,

j'ai une table de relation estdans qui contient des noms d'equipe et des entiers correspondant à des membres de ces equipes et en plus pour chacun de ces tuples un attribut (bool) est_un_chef qui indique si le membre de l'equipe est le chef de l'equipe ou pas.

Maintenant je dois avoir un trigger qui n'autorise qu'un seul chef d'equipe par equipe, je veux donc mettre à false tous les membres de l'equipe de ce membre puis ensuite inserer ou modifier le nouveau membre comme on le souhaite.

J'ai pu creer cette fonction :
create function clearTeamLeader(team varchar) returns void as $$
begin
update estDans set est_un_chef = false where nom = team and est_un_chef = true;
end;
$$ language plpgsql;

et je voudrais ajouter ce trigger :
create or replace trigger newTeamLeader
before insert or update on estDans
when new.est_un_chef = true
for each row
execute procedure clearTeamLeader(new.nom);

mais postgres me retourne cette erreur :
ERREUR: erreur de syntaxe sur ou près de « when »
LINE 3: when new.est_un_chef = true
^

pour experience j'ai aussi tenté de lever la clause when et j'ai encore une erreur :
ERREUR: erreur de syntaxe sur ou près de « new »
LINE 4: execute procedure clearTeamLeader(new.nom);
^

J'ai aussi tenté de mettre le contenu de ma procedure dans le trigger entre un begin et un end mais postgres ne semble pas reconnaitre le motclé begin non plus....

je me demande bien ce qui se passe...
Quelqu'un peut-il m'aider svp ?