SQL contrainte check évalué avant un trigger

Résolu/Fermé
paki131 - 5 sept. 2008 à 00:32
 paki131 - 5 sept. 2008 à 00:57
Bonjour,

Je construit un base de donnée en SQL sur PostgreSQL

Mon problème: j'ai une contrainte primary key sur une table et un trigger sur la meme table qui s'occupe que modifié les valeurs pour que tout fonctionne bien

ma_table:
-reference1 REFERENCES table1(id),
-reference2 REFERENCES table2(id),
-quantite int,
-primary key(reference1, reference2)


create or replace function trigger_ma_table() RETURNS TRIGGER as
$$
begin
if tg_op='INSERT' and exists (select reference1 from ma_table
where reference1 = new.reference1 and reference2 = new.reference2)
then
update ma_table set quantite=quantite+new.quantite
where reference1 = new.reference1 and reference2 = new.reference2;
return null;
end if;
return new;

end
$$
language plpgsql;


donc si je fais un insert d'une ligne qui ce trouve déja dans la BD ca ne fonctionnera pas a cause de la pk qui se fait avant, ce que je voudrais c'est que les quantite s'aditionne.

merci pour vos réponse.

1 réponse

ok erreur de ma part désolé pour l'éventuel dérangement
-1