bonjour à tous, j'ai besoin d'aide sur postgresql.
je souhaite creer une fonction qui avant d'inserer une donnée dans une table verifie d'abord si la donnée existe: si oui elle fait un update, sinon elle fait l'insertion.
et ensuite je creer un trigger sur l'insertion de la table: avant chaque insertion dans la table on execute d'abord la fonction.
voici ce que j'ai essayer de faire:
et j'ai ce message d'erreur :
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
20
21
22
23
24
25
26
27
28
29
30 CREATE FUNCTION mj (cle INT primary key , donnee varchar) RETURNS TRIGGER AS ' BEGIN LOOP UPDATE teste SET nc = donnee WHERE idteste = cle; IF found THEN RETURN; END IF; BEGIN INSERT INTO teste(idteste,nc) VALUES (cle, donnee); RETURN; EXCEPTION WHEN unique_violation THEN END; END LOOP; END; end ; ' LANGUAGE plpgsql; CREATE TRIGGER mjtest BEFORE INSERT ON teste FOR EACH ROW EXECUTE PROCEDURE mj () ;
quelqu'un a une idée sur comment je peux gérer ce problème? svp et merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5les fonctions triggers ne peuvent pas avoir des arguments déclarés Hint: Les arguments du trigger peuvent être accédés via TG_NARGS et TG_ARGV à
Partager